0

这些线是什么意思?

   for(ContactInfo *item in fullContactsArray) {
        if(item->contactId || item->listId)
            [contactsArray addObject:item];
    }

特别是,我想知道是什么->意思。请帮忙。

4

2 回答 2

3

当使用指向基于结构的数据类型的指针时,特殊的解引用语法允许您在一个步骤中引用指针并访问结构中的特定字段。为此,我们使用 -> 运算符,如下所示:

struct box * p = ...; 
p->width = 20; 

第二行演示的 -> 操作符取消引用指针 p 然后访问结构中的宽度字段。在跟随指针读取或更改它指向的值时,有时比较两个指针以检查它们是否指向相同的值也很有帮助。

Objective-C 中的指针

于 2013-04-19T03:22:30.667 回答
2

运算符的->工作方式与 C 或 C++item->contactId中的相同...与 . 相同(*item).contactId。(本例中的点是成员访问运算符,而不是属性访问运算符。)

  • 循环是通过 Objective-C 容器快速迭代的for一个例子。它只是检查数组中的fullContactsArray每个对象,依次将每个对象分配给循环变量item

  • item是指向类型对象的指针ContactInfo,并且每次通过循环它都指向不同的对象。该if语句使用->运算符检查contactIdlistId实例变量的值。

  • 如果这些变量中的任何一个不为零,则item指向的对象将添加到contactsArray.

在 Objective-C 代码中看到它有点不寻常->,尤其是现在,因为属性和属性访问器通常比直接实例变量访问更受欢迎。

于 2013-04-19T03:31:35.363 回答