【问题标题】:xcode NSArrayM insertObject:atIndex:]: object cannot be nilxcode NSArrayM insertObject:atIndex:]:对象不能为 nil
【发布时间】:2012-04-27 01:30:25
【问题描述】:

我是 Xcode 的新手。我想要的是在我的程序中本地读取 plist 数据。我有 NSArrayM insertObject:atIndex:]: object cannot be nil 错误。这是我声明的内容和我的 plist 文件。谢谢

NSMutableArray *phoneArray;

NSString *path=[[NSBundle mainBundle] pathForResource:@"PhoneList" ofType:@"plist"];

phoneArray= [[NSMutableArray alloc]initWithContentsOfFile:path];

键类型 项目 0 字典 第 1 项字典

项目有描述,名称键作为字符串类型。

【问题讨论】:

  • 你在 plist 中的一项是 nil...

标签: iphone xcode nsmutablearray plist nsdictionary


【解决方案1】:

验证您的 plist,很可能存在错误值。 NSArrayNSDictionary 中的项目不能为空。可以使用Xcode打开plist文件进行验证。

我个人使用“PlistEdit Pro”,它可以在 plist 无效时提供更好的诊断。 PlistEdit Pro 有一个Free Trial here

【讨论】:

  • 谢谢扎夫。计划帮助很大。
  • 实际上我错误地实现了 plist。外部标签是,内部标签是。再次感谢您。
【解决方案2】:
- (void)insertObject:(id)anObject atIndex:(NSUInteger)index

要添加到数组内容的对象。此值不能为 nil。

在从 plist 文件中输入任何内容之前,请检查该元素是否为 nil,以避免异常

【讨论】:

  • 感谢 WhiteTiger 我使用 NSLog(@"%@",[dic objectForKey:@"Item 0"]);
猜你喜欢
  • 2013-06-06
  • 1970-01-01
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-16
  • 1970-01-01
相关资源
最近更新 更多