与整数转换不兼容的指针将'void *'发送到'NSEnumerationOptions'类型的参数(又名'unsigned int')

时间:2013-03-23 12:57:51

标签: objective-c types nsarray warnings

如何指定我想'enumerateObjectsAtIndexes:`而没有任何选项?当我尝试将nil传递给options参数时,Xcode给了我这个警告。什么是不会引起投诉的等价值?

2 个答案:

答案 0 :(得分:3)

opts是一个枚举,在这种情况下基本上是unsigned int,所以传递0

答案 1 :(得分:2)

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Constants/Reference/reference.html#//apple_ref/doc/c_ref/NSEnumerationOptions

阅读有关此方法的NSArray文档,然后单击说明中的NSEnumerationOptions链接。

<强> NSEnumerationOptions

阻止枚举操作的选项。

enum {
   NSEnumerationConcurrent = (1UL << 0),
   NSEnumerationReverse = (1UL << 1),
};
typedef NSUInteger NSEnumerationOptions;

显然,它是一个屏蔽的NSUInteger位。 0或上述一个或两个,但NSEnumerationConcurrent仅作为提示而不是保证。

nil不是NSUInteger。并非所有方法参数都是对象。只有在对象参数是可选的时才传递nil