2012-02-13 52 views
5

在蘋果公司的內置語音郵件應用程序,當它發現它並沒有在你的地址簿中識別電話號碼,它顯示在編號的大致位置,大概是基於電話號碼。他們是怎麼做到的??我猜想手機上有一個區號和交換號碼的大型數據庫,每個數據庫都映射到城市或地區名稱。有誰知道這個映射是否可以通過公共API訪問應用程序?電話區號城市名在iOS

有大量的樣板代碼在那裏映射郵政編碼城市,但我看不到太多,做帶區號/交換相同。有任何想法嗎?

+0

類似的問題被要求在一天後這一個:http://stackoverflow.com/questions/9284212/how-to -locate-任何移動,使用數字 - - iPhone應用程序/ 18930785#18930785 – newenglander 2013-09-21 09:00:29

回答

1

他們會買了大概一個商業產品從公司如Telcordia公司(trainfo.com)。我爲GreatData.com工作,我們與主要城市(費率中心)州,時區,運營公司等一起維護區號和前綴(也稱爲'NPA/NXX'),但我們不有經度/緯度。 (Telcordia會)。

我不相信你會發現你正在尋找一個免費的產品數據。我們花費大量時間手動驗證我們的數據。

2

我已經創建了具有區域代碼和位置中有一個plist文件:areacodes.plist。要使用它,請按照下列步驟操作:

如果你是不會使用的plist文件:

plist文件添加到您的項目。

2.加載文件:

NSBundle *bundle = [NSBundle mainBundle]; 
NSString *plistPath = [bundle pathForResource:@"areacodes" ofType:@"plist"]; 
NSDictionary *areaCodeDict = [[NSDictionary alloc] initWithContentsOfFile:plistPath]; 

3.使用加載了字典。鍵是區域代碼,值的位置:

NSString *areaCode = @"801"; 
NSString *location = [self.areaCodeConversion objectForKey:areaCode]; 
NSLog(@"%@",location); // prints utah 

使用附帶的類:

添加下載的文件夾到您的項目。

2.使用附帶的類來訪問的plist信息:

#import "AreaCodes.h" 
... 
AreaCodes *areaCodes = [[AreaCodes alloc] init]; 
NSString *location = [areaCodes getLocationForCode:@"801"]; 
NSLog(@"%@",location); 
// prints "Utah" 
+0

這是偉大的..除了文件不存在..幫我給予好評...幫助文件! – 2014-08-17 20:29:57

+0

@alexgray感謝您指出。我已修復鏈接並添加了一些源文件。 – Jbryson 2014-08-18 16:40:30