【问题标题】:Incompatible pointer to integer conversion sending 'void *' to parameter of type 'NSEnumerationOptions' (aka 'unsigned int')指向整数转换的不兼容指针将“void *”发送到“NSEnumerationOptions”类型的参数(又名“unsigned int”)
【发布时间】:2013-03-23 12:57:51
【问题描述】:

如何指定我想在没有任何选项的情况下“枚举ObjectsAtIndexes:”?当我尝试将 nil 传递给 options 参数时,Xcode 给了我这个警告。不会引起投诉的等值价值是多少?

【问题讨论】:

    标签: objective-c types nsarray warnings


    【解决方案1】:

    opts 是一个枚举(在这种情况下)基本上是和unsigned int,所以通过0

    【讨论】:

      【解决方案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 只应在对象参数是可选的情况下传递。

      【讨论】:

        猜你喜欢
        • 2011-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多