Objective C定义私有方法
2015-11-23 23:25
405 查看
new file---ios--source ---Cocoa Touch Class ---MyClass
我们有时会遇到,希望某个类的方法不能被它的继承类所继承。这在C++是很好实现,直接将该方法定义为private即可。但是在正规的OC语法,你不能对一个类的方法定义为private,那么如何实现这种功能呢?
上帝给你关上一道门,同时给你打开一扇窗。OC同样也是如此,当OC不能将类定义为私有时,还提供了另外一种方法:类别,在现有类的基础上添加新方法的方式。下面用代码来具体实现私有方法。
假设现有的类为MyClass:
在类的头文件代码为:
@interface MyClass {
// 添加变量
}
- (void)PublicMethod;//公共方法,可以被继承类继承
@end
而在类的.m文件中,采用类别来实现私有方法,具体操作为:
---------------手动添加---start----------
@interface MyClass()//注意(),即定义一个空类别
- (void)PrivateMethod;//在类别中定义私有方法
@end
---------------手动添加---end---------
@implementation MyClass
- (void)PublicMethod {
// I共有方法实现代码
}
- (void)PrivateMethod {
// 私有方法代码
}
@end
我们有时会遇到,希望某个类的方法不能被它的继承类所继承。这在C++是很好实现,直接将该方法定义为private即可。但是在正规的OC语法,你不能对一个类的方法定义为private,那么如何实现这种功能呢?
上帝给你关上一道门,同时给你打开一扇窗。OC同样也是如此,当OC不能将类定义为私有时,还提供了另外一种方法:类别,在现有类的基础上添加新方法的方式。下面用代码来具体实现私有方法。
假设现有的类为MyClass:
在类的头文件代码为:
@interface MyClass {
// 添加变量
}
- (void)PublicMethod;//公共方法,可以被继承类继承
@end
而在类的.m文件中,采用类别来实现私有方法,具体操作为:
---------------手动添加---start----------
@interface MyClass()//注意(),即定义一个空类别
- (void)PrivateMethod;//在类别中定义私有方法
@end
---------------手动添加---end---------
@implementation MyClass
- (void)PublicMethod {
// I共有方法实现代码
}
- (void)PrivateMethod {
// 私有方法代码
}
@end
相关文章推荐
- objective-c中Category 类别、扩展 专题总结
- javascript中的Function与Object,function与object
- Function 语意学(inside the c++ object model)
- objective-C 多态
- Swift和Objective-C混合编程
- Objective-C基础知识点总结
- SLua 中,从一个Lua脚本调用 另一个GameObject上的Lua脚本中的函数
- IOS开发基础Object-C(09)—OC内存管理(3)-@property的参数详解
- 解决Volley框架下JsonObjectRequest以POST提交数据,服务端无法获取数据的问题。
- Objective-C:神在细节之中
- Objective-C的hook方案(一): Method Swizzling
- Objective-C Runtime 运行时之四:Method Swizzling
- 《Objective-c开发范例代码大全》
- 虚幻4随笔6 Object和序列化
- 窥探 NSObject
- 详解Objective-C中委托和协议
- 3D Object Proposals for Accurate Object Class Detection
- Objective-C 协议(protocol)
- objectForKey与valueForKey在NSDictionary中的差异
- Entity Framework 出现 "此 ObjectContext 实例已释放,不可再用于需要连接的操作" 的错误