【问题标题】:iPhone SDK @package vs. @private vs. @public and structiPhone SDK @package vs. @private vs. @public 和 struct
【发布时间】:2011-04-02 15:32:46
【问题描述】:

嘿,我有一个非常简单的问题,需要更多的解释而不是调试,但我在许多类对象的接口定义中看到了关键字“@package”、“@private”、“@public”,然后甚至更奇怪的“struct {...}”。我已经能够在不使用上述任何内容的情况下制作完整的程序,所以我希望有人能向我解释这些关键字的意义。

谢谢

编辑:
等等,我现在明白了每个声明的限制,但你为什么需要使用它们?你能澄清一下“struct {...}”的含义以及我如何使用它吗?再次感谢:D

【问题讨论】:

    标签: objective-c iphone package private public


    【解决方案1】:

    关于包裹,您的问题在这里得到详细解答:What does the @package directive do in Objective-C?

    struct 是一种 C 构造,可让您以一个名称访问多种数据类型。

    @private 限制对变量的访问仅限此类使用

    @protected 限制对变量的访问,仅限此类和继承类使用(默认在 Obj-C 类中)

    @package 限制对变量的访问以供框架使用

    @public 让每个人都可以访问这个变量

    编辑:

    struct person {         /* declares struct person */
    int   age;
    float weight;
    char  name[25];
      } adam;
    
    struct person joe;
    joe.age = 23;        /* add values */
    joe.weight = 147.8;    
    

    关于限制,其良好的 OO 实践限制对变量的访问,称为封装http://en.wikipedia.org/wiki/Encapsulation_%28object-oriented_programming%29

    【讨论】:

    • "@public 让每个人都可以访问这个变量(Obj-C 类中的默认值)"@public 绝对不是默认值
    • @user:你说得对,我重新阅读了文档,它确实默认为@protected
    猜你喜欢
    • 2010-10-17
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 2013-03-29
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    相关资源
    最近更新 更多