我無法弄清楚這一點。我讀過的有關瞬態屬性的信息告訴我,它們可以在未定義類型的對象模型中識別出來。但編譯器抱怨這種類型是未知的錯誤。使用核心數據實現瞬態屬性
從核心逸編程指南:
如果不支持的屬性是一個對象,然後在管理對象模型,你可以指定其類型爲不確定的,而且它是短暫的。在實現實體的自定義類時,不需要爲該屬性添加實例變量,您可以使用託管對象的私有內部存儲。關於下面描述的實現需要注意的一點是它們緩存瞬態值。這使訪問價值更有效率 - 這也是變更管理所必需的。如果您定義了自定義實例變量,則應該在didTurnIntoFault中清理這些變量,而不是dealloc或finalize。
這裏是頭文件:
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@class SearchTerms;
@interface SearchResult : NSManagedObject {
@private
}
@property (nonatomic, retain) NSString * lattitude;
@property (nonatomic, retain) NSString * details;
@property (nonatomic, retain) NSString * endTime;
@property (nonatomic, retain) NSString * longitude;
@property (nonatomic, retain) NSString * city;
@property (nonatomic, retain) NSString * title;
@property (nonatomic, retain) NSString * imageLink;
@property (nonatomic, retain) NSString * startTime;
@property (nonatomic, retain) UNKNOWN_TYPE coordinate;
@property (nonatomic, retain) UNKNOWN_TYPE subtitle;
@property (nonatomic, retain) SearchTerms * searchUsed;
@end
我想包括與標題,副標題的MKAnnotation屬性,和協調。在這裏,我需要從其他字段導出字幕,並從經度和緯度導出座標。
我不確定如何協調指南的內容和看起來很明顯的錯誤,編譯器這樣說。
一旦我得到正確的標題,我可能能夠得到實施的權利,我會使用awakeFromFault設置值。我不確定是否需要使用didTurnIntoFault發佈副標題,這將是一個NSString,但這似乎是指南所要做的。
我還沒有看到如何實現一個簡單的瞬態屬性真的很好的例子。我很想嘗試將屬性添加到託管對象實體,並忘記在託管對象模型中提及它。但是,如果我這樣做,我似乎會忽略一些東西。
假設您正在存儲一個對象,但是:是否適合使用Undefined和Transient以避免將其保留在Core Data中?如果是這樣,那麼你應該如何處理這些'UNKNOWN_TYPE'?用實際類型替換它們? –