objective-c - null,nill 是 Objective-C 中的字符串类型
问题描述
//result: ok fine
NSString *email = [dataDic objectForKey:@"email"];
if([email isEqualToString:@"null"])
email = nil;
if((![email length]) == 0)
self.emailLbl.text = email;
// result: not fine
NSString *email = [dataDic objectForKey:@"email"];
if((![email length]) == 0 || (email != nil) )
self.emailLbl.text = email;
在字典中,电子邮件属性值包含空值。我的问题是 nil 的类型是什么?-> if comparison email == nil || email == [NSNull null]
?
解决方案
您应该检查键 @"email" 是否包含任何值(如果它是字符串)
NSString *email=dic[@"email"];
if (email) {
//do anything with email
}
如果你想检查你的对象是 Nil 还是 Null 然后做
if (!email || email == (id)[NSNull null]) {
//email unavailable
}
或者,您可以调用[Obj isKindOfClass:[NSNull class]]
任何对象。
推荐阅读
- tensorflow - 使用 Keras 迁移学习的边界框回归给出 0% 的准确率。Sigmoid 激活的输出层只输出 0 或 1
- python - 迭代一个 Python 列表并根据另一个列表过滤元素
- 3d - 如何在 OpenSCAD 中放置对象(使其在 Z 轴上齐平以进行 3D 打印)
- c++ - 如何在 C++ 中将摩尔斯电码翻译成英语?
- reactjs - React-query:如何更新缓存?
- django - 如何在管理员(Django)中从服务器选择(不上传)文件
- axios - 在 Nuxt.js 中带有正文的 axios DELETE 请求
- php - 如何修复 Laravel 8 测试中的“419 - 页面已过期”错误?
- apache-spark - pyspark:如何以“yyyy-MM-dd HH”格式按日期列分区
- php - Laravel 应用程序与 3rd 方 API 交互以获取令牌