2011-01-11 102 views
9

嗨我目前收到此错误消息。并且受到香蕉之爱的影响,我无法弄清楚自己做得不对。xcode:property'title''copy'属性与超类'UIViewController'属性不匹配

它只是一个

IBOutlet UILabel *title; 

@property(nonatomic, retain) IBOutlet UILabel *title; 

我做了连接到连接到一个UILabel,因为我在运行时动态地更改标题我的厦门国际银行文件。

类/../ taskViewController.h:44:警告:属性“标题”“复制”属性不匹配超类的UIViewController的“属性

我不明白这是什么意思。 通常我能够摆脱警告信息。但是这个......我不知道发生了什么。

有人可以请指导我解释这里发生了什么。

回答

15

你的问题是,UIViewController已经定义了一个title属性,并且你正在使用不同的内存管理选项。要解决此问题,请更改您的财产的名称。例如:@property (nonatomic, copy) UILabel *titleLabel;。如果您希望实例变量具有相同的名称,并使用@synthesize,请使用@synthesize titleLabel=title;

另外,你为什么要复制一个UILabel?通常情况下,你会使用retain来保证它是同一个对象。

+0

这就是我所拥有的......我没有'复制'这个词,我确实有'保留'这个单词..... @property(nonatomic,retain)IBOutlet UILabel * title; – Pavan 2011-01-11 03:09:25

+0

然后UIViewController必须使用副本。我会预料到,因为它是一个NSString,但我认为这个错误会给你所用的。 – ughoavgfhw 2011-01-11 09:04:24

3

这意味着:

  • 你的UIViewController的一个子类
  • 它包含了一个名为“标题”
  • 您已声明与“复制”属性property属性
  • 父类(UIViewController)已经具有冲突的定义(即,不是“复制”)的“标题”属性
0

那么我想只是澄清标题是在UIViewController预定义的对象,所以你不能创建你自己的同名同名对象,改变与别的东西,看到它不会给你那个错误。