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

Noo*_*ath 1 iphone private public objective-c package

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

谢谢

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

Gau*_*ses 6

关于包,你的问题在这里详细解答:@package指令在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;    
Run Code Online (Sandbox Code Playgroud)

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