iPhone SDK @package vs. @private vs. @public和struct

时间:2010-08-23 13:12:15

标签: objective-c iphone package private public

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

由于

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

1 个答案:

答案 0 :(得分:6)

关于套餐,您的问题在此详细解答: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