这个问题有很多变种,但似乎都没有得到我需要的东西。
我有一个对象,联系人,这是一个核心数据实体联系人。我想显示尽可能多的地址,所以如果例如没有拉链,我会把它留下来。
我尝试了以下变体但没有取得任何成功:
if (self.contact.state && !self.contact.zip) {
NSString *location = contact.state;
}
and also
self.contactZip.text = self.contact.zip;
if (length(self.contactZip.text)<1) {
NSString *location = contact.state;
}
有人能建议正确的方法吗?
THX。
答案 0 :(得分:0)
检查Core Data是否存在值的方法(与任何Objective-C属性一样)是检查并查看值是否为nil:
if (self.contact.zip == nil) {
...
}
尽管!
语法很常见,但最好编写代码以专门检查nil [部分原因是它使您的代码更清楚地了解它正在做什么。部分原因是!
是一个布尔运算符,由于语言的实现细节而在检查nil时才会起作用。]。
如果属性是字符串,而您实际想知道的是它是否具有非零长度,请检查两者(因为零长度字符串与nil值不同)。在Objective-C中,您可以利用语言对nil方法调用的处理并执行
if ([self.contact.zip length] == 0) {
...
}
在nil参数上调用length
将返回零,因此在ObjC中,这最终会同时检查nil和零长度。