作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有这个声明:
[custData setObject: [rs stringForColumnIndex:2] forKey: @"email"];
从 SQLite3 d/b 获得的 [rs stringForColumnIndex:2]
的值为 nil
。该应用程序崩溃给我错误:
NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: email)'
有没有办法避免这种情况? (比如 NSMutableDictionary
的设置?)
更新:这是我最终做的:
[custData setObject: ([rs stringForColumnIndex:2] != nil? [rs stringForColumnIndex:2]:@"") forKey: @"email"];
最佳答案
有一个非nil
对象叫做NSNull
它专门用于在“普通”nil
Not Acceptable 情况下表示 nil
。如果您将 nil
替换为 [NSNull null]
对象,NSDictionary
将接受它们。不过,您需要在出路时检查 NSNull
。
请注意,仅当您必须区分未设置的值和设置为 nil
的值时,这才重要。如果您的代码可以将缺失值解释为nil
,则您根本不需要使用NSNull
。
关于objective-c - 如何让 NSMutableDictionary 接受 'nil' 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10856753/
我是一名优秀的程序员,十分优秀!