我有一個名爲MediaFile的PFObject子類。爲了從電話找回我的子類的實例的服務器,我已經看到了你可以如何構造查詢瞭解析子這樣的:解析:使用PFCloud調用的PFObject子類
PFQuery *query = [MediaFile query];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { ... }];
然而,大多數在我的應用程序調用服務器的都是定製雲調用,返回PFObjects。一旦我檢索到這些對象,我想將它們視爲MediaFile對象,並在它們上調用MediaFile類中定義的自定義方法。投射不起作用,因爲它實際上並不構建MediaFile對象。我做了什麼來解決這個問題是建設新的MediaFiles爲我回去用[MediaFile object]
每個PFObject,然後使用方法我編寫的名爲loadFromObject:
所有的數據複製到每一個:
[PFCloud callFunctionInBackground:@"func" withParameters:@{} block:^(id objects, NSError *error) {
for (PFObject *object in objects) {
MediaFile *mf = [[MediaFile object] loadFromObject:object];
[array addObject:mf];
}
}];
在MediaFile.m :
- (MediaFile *) loadFromObject:(PFObject *)object {
NSArray *keys = [object allKeys];
for (NSString *key in keys) {
id obj = [object objectForKey:key];
[self setObject:obj forKey:key];
}
return self;
}
這有用,但有沒有更好的方法來解決這個問題?