向 NSObject 键添加值 - 表达式不可分配
Adding value to NSObject key- Expression is not assignable
我正在尝试将从 API 调用返回的值添加到 Objective-C 中的对象。我在 Xcode 中得到一个错误,说“表达式不可分配”,但不明白为什么。在我的 carObj
中,我有一个名为 warrantyPlan
的对象,其值为 nil
,我正在尝试设置 warrantyPlan
的值。我在这个方法中做错了什么?
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;
}];
}
[carObj valueForKeyPath:@"warrantyPlans"]
是一个 表达式 有一个字面意思 42
是一个有值的表达式。它不是像 foo
这样的表达式,它是一个值为 42 的变量,可以通过在等号左侧使用它来更改。
如需更改:
[carObj setValue:response forKeyPath:@"warrantyPlans"]
这两个分别叫做泛型gettervalueForKey:
和泛型settersetValue:forKey:
在 KeyValueCoding 指南中:https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/KeyValueCoding/index.html
我正在尝试将从 API 调用返回的值添加到 Objective-C 中的对象。我在 Xcode 中得到一个错误,说“表达式不可分配”,但不明白为什么。在我的 carObj
中,我有一个名为 warrantyPlan
的对象,其值为 nil
,我正在尝试设置 warrantyPlan
的值。我在这个方法中做错了什么?
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;
}];
}
[carObj valueForKeyPath:@"warrantyPlans"]
是一个 表达式 有一个字面意思 42
是一个有值的表达式。它不是像 foo
这样的表达式,它是一个值为 42 的变量,可以通过在等号左侧使用它来更改。
如需更改:
[carObj setValue:response forKeyPath:@"warrantyPlans"]
这两个分别叫做泛型gettervalueForKey:
和泛型settersetValue:forKey:
在 KeyValueCoding 指南中:https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/KeyValueCoding/index.html