2012-01-02 81 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