2016-01-27 98 views
0

更新Xcode 7的舊項目,並且出現更新前未收到的錯誤。屬性上的XCode屬性與從'UIViewController'繼承的屬性不匹配

.h文件中:

@interface TableRowViewController : UITableViewController { 
    UIImage *rowImage; 
    NSString *nibName; 
} 
@property (nonatomic, strong) UIImage *rowImage; 
@property (nonatomic, strong) NSString *nibName; // <-- error here 
@end 

拋出錯誤:

'copy' attribute on property 'nibName' does not match the property inherited from 'UIViewController'

.m文件:

#import "TableRowViewController.h" 

@implementation TableRowViewController 

@synthesize rowImage; 
@synthesize nibName; 

@end 
+1

就像頭一樣,刪除實例變量和合成名稱。回到當天,您必須手動執行此操作,現在實例變量與合成屬性一起生成。 – TheCodingArt

+0

@TheCodingArt只是爲了確保我明白...我是否擺脫了\ @synthesize和\ @property行,NSString行呢? – AndyD273

+1

@sythesize和括號中的實例變量 – TheCodingArt

回答

3

它告訴你一個超已經與該名稱的屬性: @property(nonatomic, readonly, copy) NSString *nibName,並且這些屬性與您對其的重新定義不匹配。 (複製/只讀對強)

如果您的目的是擁有此屬性與超類相同,則可以擺脫您的定義。如果你有不同的目的,你應該重命名它,所以沒有衝突。

+0

它必須是一個我無法訪問的超類,因爲當我註釋掉該屬性行時,出現一堆錯誤,說我試圖寫入只讀屬性。執行代碼搜索只會返回這一個結果。我將它切換到了rowNibName,而不是......必須修復它幾十個其他地方,但它似乎工作! – AndyD273

+0

它在'UIViewController'中,是的,它在那裏被標記爲readonly(我粘貼到答案中的聲明)。 –