在iOS开发中告别未定义selector
2012-04-13 21:28
162 查看
objc和C++同为由C语言衍生出的OOP语言,但他们实现OOP的方式并不相同:在C++中,对象与方法在编译器绑定;而在objc中,称“方法”一词为“消息”,在程序运行时向对象发送消息,即运行期绑定。
两种方式各有优劣,C++注重性能,objc注重灵活。
然而运行期绑定给开发带来问题——编程时拼写错了方法名,编译器并不报错。笔者曾debug一小时,最后发现是方法名少写了个冒号。
为此笔者曾用过一个笨办法——断言某对象响应某方法,以此来排除错误可能。
这当然太过麻烦,其实有个简单的方法,可以上编译器报warning:
以Xcode 4为例,打开一个项目,在左侧导航栏中双击项目文件:
在弹出窗口中将GCC waring项undeclared selector设为yes:
来源:http://www.th7.cn/Program/IOS/2012/02/22/60283.shtml
两种方式各有优劣,C++注重性能,objc注重灵活。
然而运行期绑定给开发带来问题——编程时拼写错了方法名,编译器并不报错。笔者曾debug一小时,最后发现是方法名少写了个冒号。
为此笔者曾用过一个笨办法——断言某对象响应某方法,以此来排除错误可能。
这当然太过麻烦,其实有个简单的方法,可以上编译器报warning:
以Xcode 4为例,打开一个项目,在左侧导航栏中双击项目文件:
在弹出窗口中将GCC waring项undeclared selector设为yes:
来源:http://www.th7.cn/Program/IOS/2012/02/22/60283.shtml
相关文章推荐
- 在iOS开发中告别未定义selector
- iOS开发学习第七课——结构体的定义、声明和应用
- iOS 开发中的争议(一)类的成员变量应该如何定义?
- iOS开发之@Selector参数的传递
- RestKit:iOS开发必备,告别众多无聊代码
- iOS开发,EALayout 无需反复编译,可视化实时界面,告别Storyboard AutoLayout Xib等等烦人的工具
- iOS开发中, '-[__NSCFConstantString size]: unrecognized selector sent to instance 0x10abccc00'
- iOS开发中属性常用关键字及定义
- iOS开发笔记--atomic与nonatomic,assign,copy与retain的定义和区别
- reason: '-[__NSCFNumber rangeOfCharacterFromSet:]: unrecognized selector sent to instance --iOS开发之崩溃
- ios开发@selector的函数如何传参数/如何传递多个参数
- IOS开发】@selector 调用方法,传递多参数。
- iOS开发之 [NSNull length]:unrecognized selector sent to instance
- ios开发出现 -[__NSDictionaryM isEqualToString:]: unrecognized selector sent to instance 错误
- IOS开发: 返回字符串高度, 重定义cell高度, cell重用方法
- [IOS 开发] performSelectorXXX的延迟的使用
- iOS开发之Debug之unrecognized selector sent to instancexxx
- RestKit:iOS开发必备,告别众多无聊代码
- iOS开发 [SY_InformationController respondsToSelector:]: message sent to deallocated崩溃信息
- iOS开发学习第十二课——函数指针定义 、函数回调 、动态排序