看到這個錯的時候 通常就是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
由於前面沒有時間,不少東西沒有記錄,如今開始每次遇到問題都記錄下來,無論問題大小,都作一個記錄。當作之後的筆記看。百度