Objective c userRecord[@“firstName”]=self.me.firstName;,这意味着什么;?

Objective c userRecord[@“firstName”]=self.me.firstName;,这意味着什么;?,objective-c,Objective C,我有一些关于objective-C语法的问题,请参考下面的源代码 userRecord[@“firstName”]=self.me.firstName有什么作用平均值 是不是[userRecord setObject:self.me.firstName forKey:@“firstName”] 谢谢你的帮助 void(^fetchedMyRecord)(CKRecord *record, NSError *error) = ^(CKRecord *userRecord, NSError *err

我有一些关于objective-C语法的问题,请参考下面的源代码

userRecord[@“firstName”]=self.me.firstName有什么作用平均值

是不是
[userRecord setObject:self.me.firstName forKey:@“firstName”]

谢谢你的帮助

void(^fetchedMyRecord)(CKRecord *record, NSError *error) = ^(CKRecord *userRecord, NSError *error) {
    LOG_ERROR(@"fetching my own record");
    self.myRecord = userRecord;
    userRecord[@"firstName"] = self.me.firstName;
    userRecord[@"lastName"] = self.me.lastName;
    [self.publicDB saveRecord:userRecord completionHandler:^(CKRecord *record, NSError *error){
        LOG_ERROR(@"attaching my values");
        NSLog(@"Saved record ID %@", record.recordID);
    }];
};

在上述代码中,您将值放入字典中
将值分配给具有键名的字典

userRecord
属于
NSMutableDictionary
类型,这意味着它是一个键/值存储

您可以通过提供适当的键来访问

在您的情况下,
userRecord
包含
firstName
lastName

在Objective-C中,您有两种可能访问,两者在功能上是等效的:

  • 使用
    objectForKey:
    /
    setObject:forKey:
  • 使用语法糖
  • 在您的情况下,您可以在
    userRecord
    中使用第二个选项和语法糖设置值,或者您可以使用:

    [userRecord setObject:self.me.lastName forKey:@“lastName”],这相当于您的行:
    
    userRecord[@“lastName”]=self.me.lastName

    所以,要回答您的问题,是的,
    userRecord[@“firstName”]=self.me.firstName
    [userRecord setObject:self.me.firstName forKey:@“firstName”]相同

    请注意,这仅适用于
    NSMutableDictionary
    类型的对象,而不适用于
    NSDictionary
    类型的对象

    userRecord[@“firstName”]=self.me.firstName是什么;什么意思

    是[userRecord setObject:self.me.firstName forKey:@“firstName”]

    没错

    长话短说:您的代码行扩展到

    [userRecord setObject:[[self me] firstName] forKeyedSubscript:@"firstName"];
    
    。。。其中,
    self.me.firstName
    对应于
    [[self-me]firstName]
    (如果@properties
    me
    firstName
    具有默认的getter名称。)

    NSMutableDictionary
    中,方法
    setObject:forkeydsubscript:
    相当于
    setObject:forKey:

    您的解释“dict[@“key”]与setObject:forKey:”相同,但有点错误。下标运算符扩展为
    setObject:forkeydsubscript:
    。在NSMutableDictionary中,此方法调用
    setObject:forKey: