这些线是什么意思?
for(ContactInfo *item in fullContactsArray) {
if(item->contactId || item->listId)
[contactsArray addObject:item];
}
特别是,我想知道是什么->
意思。请帮忙。
这些线是什么意思?
for(ContactInfo *item in fullContactsArray) {
if(item->contactId || item->listId)
[contactsArray addObject:item];
}
特别是,我想知道是什么->
意思。请帮忙。
当使用指向基于结构的数据类型的指针时,特殊的解引用语法允许您在一个步骤中引用指针并访问结构中的特定字段。为此,我们使用 -> 运算符,如下所示:
struct box * p = ...;
p->width = 20;
第二行演示的 -> 操作符取消引用指针 p 然后访问结构中的宽度字段。在跟随指针读取或更改它指向的值时,有时比较两个指针以检查它们是否指向相同的值也很有帮助。
运算符的->
工作方式与 C 或 C++item->contactId
中的相同...与 . 相同(*item).contactId
。(本例中的点是成员访问运算符,而不是属性访问运算符。)
循环是通过 Objective-C 容器快速迭代的for
一个例子。它只是检查数组中的fullContactsArray
每个对象,依次将每个对象分配给循环变量item
。
item
是指向类型对象的指针ContactInfo
,并且每次通过循环它都指向不同的对象。该if
语句使用->
运算符检查contactId
和listId
实例变量的值。
如果这些变量中的任何一个不为零,则item
指向的对象将添加到contactsArray
.
在 Objective-C 代码中看到它有点不寻常->
,尤其是现在,因为属性和属性访问器通常比直接实例变量访问更受欢迎。