本帖最后由 闪电侠 于 2015-7-10 22:22 编辑
我们知道在很多面向对象的高级语言中有私有方法,即用private关键词修饰的方法,但是在OC中,虽然也有类似的关键字@private,但此关键词不能修饰方法,否则编译器报错,那么这就意味着所有对象方法和类方法都将是公开的,这在开发中显然不合理,那么有没有办法来实现类似私有方法的效果呢?
我想到两种方法:
第一种:
- // .h文件
- @interface Person : NSObject
- @end
复制代码- // .m文件
- @implementation Person
- - (void)run{
- }
- @end
复制代码 即不在.h文件中申明方法,只在.m文件中实现方法
第二种:
- // .h文件
- @interface Person : NSObject
- @end
- // 匿名Category
- @interface Person ()
- - (void)run;
- @end
复制代码- // .m文件
- @implementation Person
- - (void)run{
- }
- @end
复制代码
即使用一个匿名的Category,让外部根本没法调用,只能由本类内部调用 |
|