Objective_C学习总结

Objective_C与C++有些许相似,C++里的继承,覆盖,隐藏在obj_c里一样适用,但是它的重载却没有c++里灵活。

objective_C里只能以参数个数不同进行函数的重载,不能以类型做为重载的条件。

如:

- (void)requestTTT:(NSString*)waitress;
- (void)requestTTT:(BOOL*)waitress ;

在编译的时候就会出错

只要其中一个方法加一个参数就会成功,如下:

- (void)requestTTT:(NSString*)waitress;
- (void)requestTTT:(BOOL*)waitress  withName:(NSString *)name;

其实严格的说,这是两个不同的方法,分别是 requestTTT:与requestTTT:withName:

因此得出结论:objective_C没有函数重载功能


参考资料:

http://www.cppblog.com/kesalin/archive/2011/08/30/137494.html

http://mobile.51cto.com/iphone-278510.htm


objective_c 2.0还是有很多新功能,特别是它的run time.  有poseas, swizze,比如我们可以运行时修改父类的方法。

参看资料:

https://github.com/rentzsch/jrswizzle

http://www.cocoadev.com/index.pl?MethodSwizzling

http://www.devdiv.com/article-1644-1.html

http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html




你可能感兴趣的:(c)