我正在嘗試將從 API 呼叫回傳的值添加到 Objective-C 中的物件。我在 Xcode 中收到一個錯誤,說“運算式不可分配”,不明白為什么。在我的我有一個用值carObj呼叫的物件,我正在嘗試為. 我在這種方法中做錯了什么?warrantyPlannilwarrantyPlan
NSArray *carUUIDs = [carData valueForKeyPath:@"uuid"];
NSString *ownerUUID = ownerRecord[@"uuid"];
if (ownerID) {
NSManagedObjectContext *context = [DataCenter viewContext];
NSObject *carObj = [context objectsForEntityName:[CarObject entityName] matchingUUIDs:carUUIDs];
for (id carID in carUUIDs){
[WarrantyPlansService getWarrantyPlansForCarWithCarID:carID ownerID:ownerUUID completion:^(NSArray* response, NSError* error){
//attach the response to the carData
NSLog(@"%@", [carObj valueForKeyPath:@"warrantyPlans"]);
[carObj valueForKeyPath:@"warrantyPlans"] = response;
}];
}
uj5u.com熱心網友回復:
[carObj valueForKeyPath:@"warrantyPlans"]是一個有值的運算式,就像字面意思42是一個有值的運算式。它不是這樣的運算式foo,它是一個值為 42 的變數,可以通過在等號左側使用它來更改。
要更改它,您需要:
[carObj setValue:response forKeyPath:@"warrantyPlans"]
這兩個在 KeyValueCoding 指南中被稱為通用getter valueForKey:和通用設定器: https ://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/KeyValueCoding/index.htmlsetValue:forKey:
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/466097.html
