我对变量值有一个奇怪的问题。这是代码(它是类方法的一部分):
MyAppDelegate *pDelegate = [[UIApplication sharedApplication] delegate];
SomeDictionaryData *appData = [pDelegate.theData retain];
NSLog(@"my instance var: %@",cardIndex); // outputs "my instance var: 4"
NSDictionary *currentCard = [[NSDictionary alloc] initWithDictionary:[appData.cards objectAtIndex:cardIndex]];;
// the above line breaks the app
[currentCard release];
[appData release];
我正在使用带有objc_exception_throw
断点的调试器。那里收到的输入objectAtIndex
显示值为= 13760640。appData 的cards
属性是一个NSArray
,它显然没有一千万+个项目,所以我得到一个越界错误。我尝试铸造(int)cardIndex
没有更好的结果。奇怪的是,其他一些类中的类似代码可以正常工作。
这是我想在整个应用程序中使用的一些数据,所以我有一个模型类,它在 AppDelegate 中被初始化,theData
然后被不同的 ViewControllers 访问。在成功访问某个其他 ViewController(该 ViewController 也保留/释放)后,会出现此错误。
任何帮助将不胜感激。