向 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