Objective-C崩溃问题:NSInvalidArgumentException

时间:2012-01-02 14:46:06

标签: iphone objective-c ios memory-management xcode4

我被困在了很长一段时间,但无法找到解决方案。这是我的代码:`

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];

我使用this报告收到NSException崩溃。请帮忙。

2 个答案:

答案 0 :(得分:2)

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

您可能尝试使用 initWithArray 传递 NSDictionary 而不是 NSArray

答案 1 :(得分:-1)

NSLog条目是否显示?如果不是,那是因为tempArray不响应retainCount。如果你使用带有ARC for iOS 5的Xcode 4.2(除非你有遗留代码,否则你应该使用Xcode 4.2),你不需要担心releaseretain

否则,在某个地方你正在向对象发送一条它没有响应的消息。