当使用这些时,nos和Nil和Null之间有什么区别?

时间:2014-01-10 11:45:34

标签: ios iphone objective-c null

我应该在哪里使用nil,其他人应该在哪里Null Nil 现在我想将nil val分配给一个字符串  的NSString =无;

3 个答案:

答案 0 :(得分:1)

要获得nilnull的不同,请参阅Objective-C: What's the difference between NULL, nil and @""?

如果您想将nilnull分配给NSString,您应该写

NSString *myStr = @""; // it empty/nil/null

您可以通过

检查字符串是否为空
if([myStr length] == 0) // or if([myStr isEqual:[NSNull class]])
{
  // empty string;
}
else
{
  // not empty string;
}

答案 1 :(得分:0)

nil用于表示objective-c中的空指针作为对象。 Nil表示类的空指针。 NULL实际上与nil相同。它在MacTypes.h中定义为

// MacTypes.h
#define nil NULL

你还应该提到NSNull,它可以用来表示NSArray,NSDictionary等中的空值。

答案 2 :(得分:0)

这三个值中的所有三个都表示null或零指针值。不同之处在于,对于任何指针,NULL表示零,nil特定于对象(例如,id),Nil特定于类指针。在正确的环境中使用正确的空对象进行记录时应该被认为是最佳实践,即使没有什么能阻止某人在进行混合和匹配时。

请参阅此Difference between nil, Nil, NULL