摘要: 项目设计到多个平台,所有底层函数名都是统一的,这就要求IOS这边的函数必须动态执行。-(void)executefunction:(NSString*)funciontName{NSLog(@"%@",funciontName);[selfperformSelector:(SEL)("test_function")];char*f="test_function";[selfperformSelector:(SEL)(f)]; //使用NSString[selfperformSelector:NSSelectorFromString(f 阅读全文
posted @ 2012-03-28 17:38 Ethan_村长 阅读(1498) 评论(0) 推荐(0) 编辑
摘要: 各种语言都有些传递函数的方法:C语言中可以使用函数指针,C++中有函数引用、仿函数和lambda,Objective-C里也有选择器(selector)和block。不过由于iOS SDK中的大部分API都是selector的方式,所以本文就重点讲述selector了。Objective-C和我接触过的其他面向对象的语言不同,它强调消息传递,而非方法调用。因此你可以对一个对象传递任何消息,而不需要在编译期声名这些消息的处理方法。很显然,既然编译期并不能确定方法的地址,那么运行期就需要自行定位了。而Objective-C runtime就是通过“id objc_msgSend(id theRec 阅读全文
posted @ 2012-03-28 10:39 Ethan_村长 阅读(2826) 评论(0) 推荐(1) 编辑