适配iOS7无 [__NSCFString containsString:]:

看到这个错的时候 通常就是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

由于前面没有时间,不少东西没有记录,如今开始每次遇到问题都记录下来,无论问题大小,都作一个记录。当作之后的笔记看。百度

相关文章
相关标签/搜索