2012-01-02 53 views
-4

我被困在它很長一段時間,但無法找到解決方案。這裏是我的代碼:`Objective-C崩潰問題:NSInvalidArgumentException

NSLog(@"[tempArray retainCount]: %d",[tempArray retainCount]);  
tempArray = [[NSMutableArray alloc] initWithArray:[allRemainingProductsDictionary objectForKey:[[allRemainingProductsDictionary allKeys]objectAtIndex:counter]]]; 

NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc] init];  
[tempDictionary setObject:productName forKey:@"name"];   
[tempArray release]; 

我得到一個NSException崩潰與this報告。請幫忙。

+2

實際上,您可以複製並粘貼崩潰日誌,而不是進行屏幕截圖。 – Max 2012-01-02 14:48:27

+0

我不擅長格式化......當然我會改進.. – utsabiem 2012-01-02 14:53:37

+0

您是否想從廣告雜亂無章的鏈接中獲利? – Till 2012-01-02 15:05:32

回答

2

該方法getObjects:範圍:正在發送到您的NSDictionary實例是一個NSArray方法。

你可能會想你的initWithArray傳遞的NSDictionary而不是的NSArray

+0

謝謝。它有幫助。 – utsabiem 2012-01-02 19:34:44

-1

是否顯示NSLog條目?如果不是這樣,那是因爲tempArray不響應retainCount。如果您使用Xcode 4.2和ARC for iOS 5(除非您有遺留代碼,否則您應該使用releaseretain),您無需擔心任何事情。

否則,在某個地方你發送一個對象的消息,它不會迴應。

+0

我正在使用XCode 4. NSLog條目顯示保留計數爲0. – utsabiem 2012-01-02 14:54:45

+0

它只顯示,因爲你很幸運; tempArray是零。在這種情況下,retainCount是無用的和不相關的。 – bbum 2012-01-03 16:15:23