我要解决的问题是将nil字符串转换为空字符串,以便可以将其作为NSDictionary
中的值。
我有以下代码:
//Accessed in class
prospect.title = [self.titleLabel.text emptyWhenNil];
// NSString+Additions Category
-(NSString *) emptyWhenNil
{
if(self == nil)
return @"";
return self;
}
但是由于某种原因,甚至从未调用
emptyWhenNil
方法!我迷路了..
最佳答案
问题是,当您的字符串指针是nil
时,您没有对象将该类别消息发送到。在Objective-C中不执行发送到nil
的消息(并返回nil
)。
如果要将“空”对象放入集合中,例如NSDictionary
或NSArray
,则可以改用NSNull
类。
或者,您可以将此方法实现为类方法:
+ (NSString *)emptyStringIfNil:(NSString *)str {
if (!str) return @"";
return str;
}
然后,您将其称为
prospect.title = [NSString emptyStringIfNil:self.titleLabel.text];
关于ios - NSString类别方法未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15836350/