看到这个错的时候 通常就是iOS系统不兼容的缘由
我如今基本没有考虑iOS7的兼容,但有时候又恰恰有iOS7的机子,很无奈又要作适配spa
我最初写的代码是这样的: 代理
if ([self.UserNameTF.text containsString:@"*"]) { GFBLog(@"还有*号 不转换"); } else { if ([self.UserNameTF.text containsString:@"*"] && [UITextField numberToNormalNumTextField:UserNameTF].length == 11) { GFBLog(@"还有*号 不转换"); } else { self.userNumber = [UITextField numberToNormalNumTextField:self.UserNameTF]; } }
iOS7的机子上运行直接奔溃了:找了一会没有发现什么问题,起初我觉得是 UITextField的代理方法有问题,我一个个代理方法注释了 最后发现问题所在。
重点就是 containsString 你看API的时候就会发现 这个方法是iOS8出来的,找到问题所在 就好解决了。code
解决方法就是找一个iOS7使用的方法替换iOS8的这个 containsString 方法orm
解决方法:io
NSRange range = [self.UserNameTF.text rangeOfString:@"*"]; if(range.location != NSNotFound) { // 存在 GFBLog(@"还有*号 不转换"); } else { // 不存在 NSRange range1 = [self.UserNameTF.text rangeOfString:@"*"]; if (range1.location != NSNotFound && [UITextField numberToNormalNumTextField:UserNameTF].length == 11) { // 存在 GFBLog(@"还有*号 不转换"); } else { // 不存在 self.userNumber = [UITextField numberToNormalNumTextField:self.UserNameTF]; } }
就解决了····
其实也傻傻的··百度一些立刻出来了,但我通常都比较喜欢先本身找到问题所在!从根本上解决问题!!!class
由于前面没有时间,不少东西没有记录,如今开始每次遇到问题都记录下来,无论问题大小,都作一个记录。当作之后的笔记看。百度