Objective c userRecord[@“firstName”]=self.me.firstName;,这意味着什么;?
我有一些关于objective-C语法的问题,请参考下面的源代码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
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]
(如果@propertiesme
和firstName
具有默认的getter名称。)
在NSMutableDictionary
中,方法setObject:forkeydsubscript:
相当于setObject:forKey:
您的解释“dict[@“key”]与setObject:forKey:”相同,但有点错误。下标运算符扩展为setObject:forkeydsubscript:
。在NSMutableDictionary中,此方法调用setObject:forKey:
。