適配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

由於前面沒有時間,不少東西沒有記錄,如今開始每次遇到問題都記錄下來,無論問題大小,都作一個記錄。當作之後的筆記看。百度

相關文章
相關標籤/搜索