2011-10-13 113 views
2

在Xcode的4.1沒有問題,但升級到的Xcode 4.2,我得到以下警告後:爲什麼升級到的Xcode 4.2並MKAnnotation顯示警告

Property 'title' 'copy' attribute does not match the property inherited from 'MKAnnotation' 
Property 'subtitle' 'copy' attribute does not match the property inherited from 'MKAnnotation' 

我的代碼:

@interface MyAnnotation : NSObject <MKAnnotation> { 
    CLLocationCoordinate2D coordinate; 
    NSString *subtitle; 
    NSString *title; 
} 
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate; 
@property (nonatomic, retain) NSString *subtitle; 
@property (nonatomic, retain) NSString *title; 

-(id)initWithCoordinate:(CLLocationCoordinate2D) coordinate; 

@end 
+0

這兩個屬性,是他們真的嗎?如果是這樣,爲什麼? – Phlibbo

+0

如果以下答案中的任何一條提出瞭解決方案,請點擊答案旁邊的複選標記以接受答案。這將有助於未來用戶搜索相同問題的答案。謝謝。 – SnareChops

回答

25

將其更改爲:

@property (nonatomic, copy) NSString *subtitle; 
@property (nonatomic, copy) NSString *title; 

MKAnnotation協議聲明

@property (nonatomic, readonly, copy) NSString *title; 
@property (nonatomic, readonly, copy) NSString *subtitle; 

您不應該更改屬性的存儲類型,如果需要,您可以/應該做出的唯一更改是從readonlyreadwrite;

+0

謝謝!現在好了! –

+0

嗨@hypercrypt,我做了這個改變,但仍然顯示19次相同的警告!聲明是at_property(非原子,讀寫,複製)NSString * title;和at_property(非原子,讀寫,複製)NSString *副標題;我正在使用iOS 5.1。任何想法有什麼不對? – applefreak

-1

嘗試在你的代碼中@end轉換後您的應用程序使用ARC Edit -> Refactor -> Convert to Objective-C ARC