Objective c 从方法返回Null或Nil?

Objective c 从方法返回Null或Nil?,objective-c,Objective C,我正在编写一个方法,如果该方法找不到它需要的东西,我想返回一个对象或缺少对象。返回缺少对象的最佳实践是什么,应该是[NSNull]还是nil?或者它没有任何区别?对于Objective-C指针,惯例是返回nil(例如类型为id,NSSomething*,UISomething*,等等),NULL对于任意C指针(例如int*,struct MyStruct*,void(*)(int) [NSNull-null]仅在希望将null值放入NS集合(如NSArray或NSDictionary时有用。因此

我正在编写一个方法,如果该方法找不到它需要的东西,我想返回一个对象或缺少对象。返回缺少对象的最佳实践是什么,应该是
[NSNull]
还是
nil
?或者它没有任何区别?

对于Objective-C指针,惯例是返回
nil
(例如类型为
id
NSSomething*
UISomething*
,等等),
NULL
对于任意C指针(例如
int*
struct MyStruct*
void(*)(int)


[NSNull-null]
仅在希望将null值放入
NS
集合(如
NSArray
NSDictionary
时有用。因此,
[NSNull-null]
是表示null值(或无值)的单例Objective-C对象按照惯例,它没有什么特别之处。

惯例是为Objective-C指针返回
nil
(例如,类型为
id
NSSomething*
UISomething*
,等等),为任意C指针返回
NULL
(例如,
int*
struct MyStruct*
void(*)(int)


[NSNull-null]
仅在希望将null值放入
NS
集合(如
NSArray
NSDictionary
时有用。因此,
[NSNull-null]
是表示null值(或无值)的单例Objective-C对象按照惯例,它在其他方面没有什么特别之处。

请参阅这篇关于nil、nil、NULL和NSNull之间差异的NSHipster文章:也值得阅读NSNull类引用:另请参阅这篇关于nil、nil、NULL和NSNull之间差异的NSHipster文章:也值得阅读NSNull类引用:也请参阅一个hint,请注意,如果将Nil放入集合,则会创建一个异常,应用程序将崩溃,因此这实际上取决于方法的用途。这就是在将返回对象添加到集合之前测试Nil的原因,这是一个标准习惯用法。只需一个提示,请注意,如果将Nil放入集合,则会创建一个exception和应用程序将崩溃,因此这实际上取决于方法的用途。这就是在将返回对象添加到集合之前测试nil的原因,这是一种标准习惯用法。