看到這個(gè)錯(cuò)的時(shí)候 一般就是iOS系統(tǒng)不兼容的原因
我現(xiàn)在基本沒有考慮iOS7的兼容,但有時(shí)候又偏偏有iOS7的機(jī)子,很無奈又要做適配
我最初寫的代碼是這樣的:
if ([self.UserNameTF.text containsString:@"*"])
{
GFBLog(@"還有*號(hào) 不轉(zhuǎn)換");
}
else
{
if ([self.UserNameTF.text containsString:@"*"] && [UITextField numberToNormalNumTextField:UserNameTF].length == 11)
{
GFBLog(@"還有*號(hào) 不轉(zhuǎn)換");
}
else
{
self.userNumber = [UITextField numberToNormalNumTextField:self.UserNameTF];
}
}
iOS7的機(jī)子上運(yùn)行直接奔潰了:找了一會(huì)沒有發(fā)現(xiàn)什么問題熔酷,起初我以為是 UITextField的代理方法有問題,我一個(gè)個(gè)代理方法注釋了 最后發(fā)現(xiàn)問題所在燃乍。
重點(diǎn)就是 containsString 你看API的時(shí)候就會(huì)發(fā)現(xiàn) 這個(gè)方法是iOS8出來的僵控,找到問題所在 就好解決了杈笔。
解決方法就是找一個(gè)iOS7使用的方法替換iOS8的這個(gè) containsString 方法
解決方法:
NSRange range = [self.UserNameTF.text rangeOfString:@"*"];
if(range.location != NSNotFound)
{
// 存在
GFBLog(@"還有*號(hào) 不轉(zhuǎn)換");
}
else
{
// 不存在
NSRange range1 = [self.UserNameTF.text rangeOfString:@"*"];
if (range1.location != NSNotFound && [UITextField numberToNormalNumTextField:UserNameTF].length == 11)
{
// 存在
GFBLog(@"還有*號(hào) 不轉(zhuǎn)換");
}
else
{
// 不存在
self.userNumber = [UITextField numberToNormalNumTextField:self.UserNameTF];
}
}
就解決了····