作用域类型一共有四种
1,@public 在任何地方都能直接通过成员变量名直接访问成员变量。(不推荐使用)
2,@private 只能在当前类的对象方法中直接通过成员变量名访问成员变量,在其他地方需要通过geter和seter方法访问。(@implementation中被声明成员变量的默认类型)
3,@protected 只能在当前类及其子类的对象方法中直接通过成员变量名访问成员变量,在其他地方需要通过geter和seter方法访问。(@interface中被声明成员变量的默认类型)
4,@package 只要在同一个框架中,就能直接通过成员变量名访问对象的成员变量。(很少使用,主要用在框架编写)
注意点:
1,同一类中@interface和@implementation中声明的成员变量不能同名。
2,一般不再@implementation中声明成员变量。
3,在.m文件中的@implementation声明的成员变量只能是@private类型,就算在前面加上其他作用域类型也没有用。如果在其他文件中情况有所不同。
(自己总结的,如果有错误希望指出,谢谢)
时间: 2024-10-09 21:54:48