Iphone 目标C碰撞问题:NSInvalidArgumentException

Iphone 目标C碰撞问题:NSInvalidArgumentException,iphone,objective-c,ios,memory-management,xcode4,Iphone,Objective C,Ios,Memory Management,Xcode4,我陷入其中很长时间,但找不到解决办法。这是我的代码:` NSLog(@"[tempArray retainCount]: %d",[tempArray retainCount]); tempArray = [[NSMutableArray alloc] initWithArray:[allRemainingProductsDictionary objectForKey:[[allRemainingProductsDictionary allKeys]objectAtIndex:count

我陷入其中很长时间,但找不到解决办法。这是我的代码:`

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崩溃报告。请帮助。

是否显示NSLog条目?如果不是,那是因为tempArray不响应retainCount。如果您使用的是带ARC for iOS 5的Xcode 4.2(您应该这样做,除非您有遗留代码),那么您不必担心任何关于
发布
保留
的问题


否则,您将向某个对象发送一条它没有响应的消息。

发送到NSDictionary实例的方法getObjects:range:是一个NSArray方法


您可能试图通过数组传递NSDictionary而不是NSArray来初始化

您实际上可以复制并粘贴崩溃日志,而不是制作屏幕截图。我不擅长格式化。。。当然我会改进的。你是想从你发布的杂乱的广告链接中获利吗?我使用的是XCode 4。NSLog条目显示时保留计数为0。它仅显示是因为您运气好;临时数组为零。在这种情况下,重新计数是无用的和无关的。