适配iOS7无 [__NSCFString containsString:]:


看到这个错的时候 一般就是iOS系统不兼容的原因

我现在基本没有考虑iOS7的兼容,但有时候又偏偏有iOS7的机子,很无奈又要做适配

我最初写的代码是这样的:

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出来的,找到问题所在 就好解决了。

解决方法就是找一个iOS7使用的方法替换iOS8的这个 containsString 方法

解决方法:

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];

}

}

就解决了····

你可能感兴趣的:(适配iOS7无 [__NSCFString containsString:]:)