【发布时间】:2010-07-29 10:00:25
【问题描述】:
所以我有一个 uiviewcontroller。它具有 NSMutableArray 的属性,具有合成的非原子保留属性。
在 viewDidLoad 中,我使用以下内容对其进行了初始化,并向导航栏添加了一个按钮。
test = [NSDictionary dictionaryWithObjectsAndKeys:
[[SearchField alloc] initWithName:@"Subject" :Text], kSubjectKey,
[[SearchField alloc] initWithName:@"Source publication" :Text], kSourceKey,
[[SearchField alloc] initWithName:@"Keyword" :Text], kKeywordKey,
[[SearchField alloc] initWithName:@"Author" :Text], kAuthorKey,
[[SearchField alloc] initWithName:@"Color" :Bool], kColorKey,
nil ];
NSLog([NSString stringWithFormat:@"lol %d", [test count]]);
通过调试器运行时,第一个日志运行良好。但是,我已将以下代码绑定到按钮:
-(void)search:(id)sender{
NSLog([NSString stringWithFormat:@"lol %d", [test count]]);
当此代码执行时,日志行因 exc 错误访问而崩溃。 在 viewDidLoad 和按钮按下之间的 NSDictionary 没有发生任何事情,那么为什么会发生这种情况呢?更重要的是,我该如何解决? :)
干杯
编辑 我想也许是我的 SearchField 类在做事,所以我用简单的字符串替换了它们,问题仍然存在。
【问题讨论】:
-
NSLog(@"lol %d", [test count]);我不确定这会解决你的错误,但你不需要在这里创建字符串对象
-
谢谢!我一直在毫无意义地创建字符串对象:)
-
也感谢所有的答案,我修复它没有问题,我得到了更好的理解。
标签: iphone objective-c nsdictionary