最近項目有點忙可霎,好久都沒有來更新博客了割卖,俗話說好記性不如個爛筆頭。今天也是抽出了一點時間來更新一下博客贼急,來記錄一下在自己在開發(fā)中遇到的坑茅茂,希望能幫到你。
讀取通訊錄實現(xiàn)
iOS9之前
AddressBookUI太抓、AddressBook
iOS9以后
蘋果爸爸在iOS 9之后更新了新的框架ContactsUI空闲、Contacts
今天我們就不說實現(xiàn)的方法了,想必大家都知道怎么實現(xiàn)我就不多啰嗦了走敌,我們今天來探討一下iOS 11.0通訊錄手機(jī)號“空格”bug碴倾。
進(jìn)入正題之前我們還是說一下事情的緣由,這一天我依舊向往常一樣悔常,在制造bug和修改bug的道路上忙碌著影斑。測試的小姐姐有點不淡定的跟我我說不能話費充值。納尼??... 剛才做了一筆還是OK的這就倒下了.... 呃呃呃 机打,立馬我自己又是試了一下 NIMA竟然能行矫户,查看了一下上送報文才發(fā)現(xiàn)手機(jī)號有“空格”。呵呵 那就 替換一下stringByReplacingOccurrencesOfString:@"-" withString:@""
什么鬼 沒有作用残邀。
我試著將手機(jī)號轉(zhuǎn)成utf8編碼打印看了一下
1523007154912.jpg
%C2%A0
問題就在這里這根本就不是一個空格,我們都知道utf8格式下空格是要被裝換成%20
皆辽。問題找到了,接下來就是如何處理這個問題了芥挣。很簡單 我們只需要將非數(shù)字的其它字符給過濾掉就行了驱闷。
這里提供兩種簡單的實現(xiàn)方式
- 正則
- (NSString *)phoneNumberFormat:(NSString *)phoneNum{
NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:@"[^\\d]" options:0 error:NULL];
phoneNum = [regular stringByReplacingMatchesInString:phoneNum options:0 range:NSMakeRange(0, [phoneNum length]) withTemplate:@""];
return phoneNum;
}
- 字符串拼接
- (NSString *)phoneNumberFormat:(NSString *)phoneNum{
NSString *tempStr = @"";
for (int i = 0; i < phoneNum.length; i++){
unichar _char = [phoneNum characterAtIndex:i];
if (_char <= '9' && _char >= '0'){
tempStr = [NSString stringWithFormat:@"%@%c",tempStr,_char];
}
}
return tempStr;
}
到此問題解決,希望能夠幫到你空免。