2016-01-25 34 views
0

我一直在嘗試做這一段時間,即訪問手機上的聯繫人,並獲得陣列上的所有移動號碼,但到目前爲止沒有達到很遠。今天我遇到了一個圖書館,那種清理過程,但我堅持只把數字放入數組中。Swift - 訪問通訊簿獲取數組

以下是代碼:

SwiftAddressBook.requestAccessWithCompletion({ (success, error) -> Void in 
      if success { 
       if let people = swiftAddressBook?.allPeople { 
        for person in people { 
         NSLog("%@", (person.phoneNumbers?.map({$0.value}))!) 
        } 
       } 
      } 
      else { 
       //no success. Optionally evaluate error 
       print("Access Red") 
      } 
     }) 

時的NSLog打印,我得到的控制檯以下:

2016-01-25 19:24:20.392 app[39001:7408159] (
    "(555) 564-8583", 
    "(415) 555-3695" 
) 
2016-01-25 19:24:20.393 app[39001:7408159] (
    "555-478-7672", 
    "(408) 555-5270", 
    "(408) 555-3514" 
) 
2016-01-25 19:24:20.393 app[39001:7408159] (
    "888-555-5512", 
    "888-555-1212" 
) 
2016-01-25 19:24:20.393 app[39001:7408159] (
    "555-522-8243" 
) 
2016-01-25 19:24:20.393 app[39001:7408159] (
    "(555) 766-4823", 
    "(707) 555-1854" 
) 
2016-01-25 19:24:20.394 app[39001:7408159] (
    "555-610-6679" 
) 

如何,我可以得到的數字只是那些接觸到的數組字符串類型?這裏的目的是在後端實際查詢該數組,並通過電話號碼獲取所有成員。

的鏈接庫是在這裏情況下,需要進一步的參考:

Link To Library

回答

1

本質上講,你要打印很多較小的陣列類似的一組電話號碼爲同一人的。我會將所有這些較小的數組合併成一個。

如何:

SwiftAddressBook.requestAccessWithCompletion({ (success, error) -> Void in 
     if success { 
      if let people = swiftAddressBook?.allPeople { 
       let arrayOfArrays = people.flatMap({$0.phoneNumbers?.map({$0.value})}) 
       print(arrayOfArrays.flatMap({ $0 })) 
      } 
     } 
     else { 
      //no success. Optionally evaluate error 
      print("Access Red") 
     } 
    }) 
+0

是,但我想有一個數組,如:「數字」,「數字」,...] –

+0

基本上我不關心什麼數字走到了一起或不是因爲我會對數據庫運行所有數據 –

+0

那麼,代碼正是你想要的,你測試了嗎? – Yarneo