2015-09-10 54 views
0

這個我使用的對象轉換爲整數值的線,在for循環中我已經把這個代碼如何將[__NSArrayI integerValue]轉換爲整數值?

NSInteger tag=[[arrFullSubCategory valueForKey:@"category"] integerValue]; 

內部arrFullSubCategory:

(
     { 
     category = 35; 
     image = "images/Hatchback.jpg"; 
     name = Hatchback; 
     parent = 20; 
    }, 
     { 
     category = 36; 
     image = "images/Sedan.jpg"; 
     name = Sedan; 
     parent = 20; 
    }, 
     { 
     category = 37; 
     image = "images/SUV.jpg"; 
     name = SUV; 
     parent = 20; 
    } 
) 

例外:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI integerValue]: unrecognized selector sent to instance 0x7ff4ba58f930' 
+4

做這樣的事情: [[[arrFullSubCategory objectatindex:我] valueForKey:@ 「類別」] integerValue]。 – Mehul

+0

你期望得到哪個'類別', - 35,36或37? – dasblinkenlight

+0

@dasblinkenlight everything ... –

回答

1

arrFullSubCategory是一個數組,你應該首先到達它的元素。比你將有NSDictionary對象。之後,您可以訪問您的category元素。因此,我認爲你的代碼應該是這樣的:

for (NSInteger i = 0; i < arrFullSubCategory.count; ++i) { 
    NSInteger tag=[[[arrFullSubCategory objectAtIndex:i] valueForKey:@"category"] integerValue]; 
} 
0

嘗試此代碼裏面的循環我希望這可以幫助你

NSInteger tag=[[[arrFullSubCategory objectAtIndex:i] valueForKey:@"category"] integerValue]; 
0

你有字典的數組,所以你用它給下面的代碼

[[[arrFullSubCategory objectAtIndex:] objectForKey:@"category"] integerValue] 
1

錯誤的說明:

的錯誤意味着你有一個陣列,陣列不響應integerValue

變量arrFullSubCategory引用一個數組(3個元素),每個元素都是一個字典。如果您在字典數組上調用valueForKey:,則會爲每個字典執行密鑰查找,併爲結果構建一個數組。在你的情況下,結果(使用文字語法)是數組:

@[ @35, @36, @37 ] 

無論這個數組是直接有用的,或者你是否應該在同一時間訪問數組中的一個元素 - 使用循環或方法,它調用每個元素的塊等 - 將取決於你的目標是什麼。

HTH