我的模型對象是從SQLite數據庫延遲加載的。不要問爲什麼,但該代碼使用QuickLite填充的對象,這意味着一些看傢俱有訪問時首次使用之前進行。如何在任何@ synthesize'd訪問器之前執行操作?
我想,天真,那valueForKey:
和setValue:forKey:
將由@synthesize
「d訪問器調用,這樣我就可以簡單地重載的2種方法,從數據庫填充對象,如果需要的話。不幸的是,這是行不通的:@synthesize
'訪問器顯然不使用KVC來獲取/設置它們的表示值。
因此,我的問題是:有沒有辦法在訪問任何@property
之前調用某些代碼,而無需親自編寫所有getters/setters?
我很樂意這樣做,會做,對於應用程序的下一個主要版本,但現在的問題是,我處理遺留代碼,我不想從底部重構它向上。任何想法如何獲得這種行爲,而不會去核心數據路徑? – DaGaMs
我更新後的答案中有一個半熟的想法。 – jrturton
謝謝,這是一個有趣的黑客...不知道我會走下去的路,但它是我的問題的有效答案。 – DaGaMs