看到这个错的时候 一般就是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];
}
}
就解决了····