Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 属性类型';id';与类型'不兼容;id';继承自';UIToolbar';警告_Ios - Fatal编程技术网

Ios 属性类型';id';与类型'不兼容;id';继承自';UIToolbar';警告

Ios 属性类型';id';与类型'不兼容;id';继承自';UIToolbar';警告,ios,Ios,我刚刚安装了xcode 5,现在收到这个警告。我以前从未见过它。我的应用程序运行正常,但我讨厌看到警告。有人知道这是什么以及如何修复它吗? 谢谢 属性类型“id”与从“UIToolbar”继承的类型“id”不兼容。您不应该在对象中使用“id”作为属性-它是为目标C对象保留的 将其更改为类似“Toolbar id”的值,这样就可以了。是的,这是因为您可能在名为delegate的类中声明了一个id属性,而UIToolbar有一个同名的属性id。只需将类的名称更改为myClassDelegate之类的

我刚刚安装了xcode 5,现在收到这个警告。我以前从未见过它。我的应用程序运行正常,但我讨厌看到警告。有人知道这是什么以及如何修复它吗? 谢谢

属性类型“id”与从“UIToolbar”继承的类型“id”不兼容。

您不应该在对象中使用“id”作为属性-它是为目标C对象保留的


将其更改为类似“Toolbar id”的值,这样就可以了。

是的,这是因为您可能在名为delegate的类中声明了一个id属性,而UIToolbar有一个同名的属性id。只需将类的名称更改为myClassDelegate之类的名称,它就会清除警告


很难从上下文的缺乏中分辨出来,但这似乎与

问题可能是您正在创建一个具有相同名称但附加了不同协议的新属性

例如,
UIToolBar
具有以下属性:

@property(nonatomic, assign) id<UIToolbarDelegate> delegate;
@属性(非原子,赋值)id委托;
如果要在类中声明以下内容,则会生成此警告,因为这两个属性具有不同的协议:

@property(nonatomic, assign) id<MyBetterDelegate> delegate;
@property(nonatomic, assign) id<MyBetterDelegate, UIToolbarDelegate> delegate;
@属性(非原子,赋值)id委托;
有两种方法可以解决这个问题。您可以修改协议以从其他协议继承:

@protocol MyBetterDelegate<UIToolbarDelegate>
...
@协议MyBetterDelegate
...
或者,您可以修改属性定义以捕获两种协议:

@property(nonatomic, assign) id<MyBetterDelegate> delegate;
@property(nonatomic, assign) id<MyBetterDelegate, UIToolbarDelegate> delegate;
@属性(非原子,赋值)id委托;

有-你做错了:)特别是如果你的“id”类型与它应该的不同。哇,你是对的。我读得很快,我不理解这个问题,但毫无疑问,你是对的,不需要代码。此错误是自我解释的。可能是重复的错误导致了此错误。谢谢有两种方法可以解决这个问题。您可以修改协议以从其他协议继承: