[英]Is it possible to override getters and setters for @dynamic properties in an NSManagedObject subclass?
[英]PFObject Subclass Getters and Setters?
我有一個簡單的PFObject
子類設置。 MyPFSubclass
。 看起來像這樣:
@interface MyPFSubclass: PFObject <PFSubclassing>
+ (NSString *)parseClassName;
@property (retain) NSString *myString;
@end
#import <Parse/PFObject+Subclass.h>
@implementation MyPFSubclass
@dynamic myString;
+ (NSString *)parseClassName {
return @”MyPFSubclass”;
}
@end
正如我所料,這一直很有效,直到我今天發現了。
我可以設置myString
值並按預期方式進行讀寫, NSLog
顯示的數據就是我設置的數據。
MyPFSubclass *obj = [MyPFSubclass new];
obj.myString = "@hello";
//prints expected value as set above
NSLog(@"%@", obj.myString);
obj[@"myString"] = "@hello";
//prints expected value as set above, again
NSLog(@"%@", obj[@"myString"]);
但是,如果執行以下操作,則不會得到更改的結果。
obj[@"myString"] = @"Hello";
//prints original value, not as set above
NSLog(@"%@", obj.myString);
似乎鍵名設置器和獲取器獨立於子類設置器和獲取器。 我不要這個!
例如,我有一個子類化的視圖,該視圖采用通用的PFObject
和鍵名,可以從中獲取和設置值。
我該如何解決? 為什么不能混合使用子類和鍵名獲取器和設置器?
沒有確切的答案,但這是一個解決方案。
我發現在使用PFObject
子類的情況下,使用setValue:forKeyPath
比使用Parse自己的包圍式語法更可靠。 即myObject[@"myAttribute"]
。
在后者看起來不能與子類屬性互換的情況下,我發現用setValue:forKeyPath
代替它是setValue:forKeyPath
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.