【发布时间】:2011-08-04 18:39:59
【问题描述】:
我希望能够访问我的 iPhone 应用程序中的一组对象。对象数组填充在我的应用程序的 appDelegate 中,我希望能够在我的一个视图控制器中访问该数组。
我目前在我的 appDelegate.h 文件中设置数组如下:
NSArray *listObjArray;
@property (nonatomic, retain) NSArray *listObjArray;
然后我在 AppDelegate 中用一些这样的字符串填充它:
listObjArray = [NSArray arrayWithObjects:@"Hello", @"How", @"are", nil];
NSLog(@"Array size = %i", [listObjArray count]);
它被合成并在dealloc中释放。 NSLog 在这里返回正确的计数。
在我的 ViewController 类中,我像这样导入 appDelegate:
#import "MyaAppDelegate.h"
然后我像这样访问我的 appDelegate 和 NSArray 并尝试在我的视图控制器中记录计数:
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication]
delegate];
NSLog(@"Before array set");
NSArray *newArray = [appDelegate listObjArray];
NSLog(@"After array set");
NSLog(@"array count = %i", [newArray count]);
NSLog(@"After array count");
这里的日志记录到“数组设置后”,然后我在尝试从视图控制器中的数组打印计数的那一行得到“EXC_BAD_ACCESS”。
从 appDelegate 打印计数可以正常工作,并将 newArray 设置为来自委托的数组似乎可以正常工作,但我无法用它做任何事情。
谁能看出我做错了什么?
【问题讨论】:
标签: iphone objective-c nsarray exc-bad-access