2015-09-05 3 views
0

Я загружаю tblView с контактами. При нажатии строки в этом tblView я могу получить имя, на которое он постучал.Как получить контакт Номер (не имя) при нажатии строки в UITableView в swift

Я хочу знать, как получить контактный номер при нажатии.

После разрешения, я храню контакты в массиве arrContatcs от этого:

let allContacts = ABAddressBookCopyArrayOfAllPeople(addressBookRef).takeRetainedValue() as Array 
    for record in allContacts { 
     let currentContact: ABRecordRef = record 
     let currentContactName = ABRecordCopyCompositeName(currentContact)?.takeRetainedValue() 
      as? String 
     if(currentContactName != nil) { 
      self.arrContacts.append(currentContactName! as String) 
     } 
    } 

Загрузка контактов в tblView от этого:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell  { 
    var cell:FriendsCustomCell = self.tblView.dequeueReusableCellWithIdentifier("SimpleTableViewIdentifier") as! FriendsCustomCell 
    cell.tag = indexPath.row; 
    cell.lblName!.text = self.arrContacts[indexPath.row] as? String 
} 

Am печати название от этого:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    let indexPath = NSIndexPath(forRow: indexPath.row, inSection: 0) 
    println("tap name = \(self.arrContacts[indexPath.row])") 
} 

Output является tap name = John

Мои Expected Output является tap name = John and number = ????????

Как я могу это получить?

+0

см. Эту ссылку для получения контактов http://stackoverflow.com/questions/24752627/accessing-ios-address-book-with-swift-array-count-of-zero –

+0

@ Anbu.Karthik извините, я все еще не понять, как я могу это сделать – AAA

+1

ваша кодировка содержит u получить только имя, ссылка содержит u получить номер, почту и т. д., если вы следуете по этой ссылке, вы получите контактный номер, но ваша кодировка верна. –

ответ

0

Я не знаю быстрого синтаксиса, но я могу дать вам общее представление.

Прежде всего, вы добавляете только имя в массив. Создайте словарь с ключами «имя» и «номер», назначьте им имя и номер, а затем добавьте его в свой массив.

let allContacts = ABAddressBookCopyArrayOfAllPeople(addressBookRef).takeRetainedValue() as Array 
for record in allContacts { 
    let currentContact: ABRecordRef = record 
    let currentContactName = ABRecordCopyCompositeName(currentContact)?.takeRetainedValue() 
     as? String 
    let currentContactNumber = ABRecordCopyCompositeNumber(currentContact)?.takeRetainedValue() 
     as? String 

    if(currentContactName != nil && currentContactNumber!=nil) { 
    //Create an array here with name and number. Objective-C code 
     NSDictionary *dict = [[dict alloc]init]; 
     [dict setValue:currentContactName forKey:@"name"]; 
     [dict setValue:currentContactNumber forKey:@"number"]; 

     //Syntax can be wrong here. add dictionary to array 
     self.arrContacts.append(dict! as Dictionary) 
    } 
} 

Теперь отображать его в таблице с соответствующими ключами:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell  { 
    var cell:FriendsCustomCell = self.tblView.dequeueReusableCellWithIdentifier("SimpleTableViewIdentifier") as! FriendsCustomCell 
    cell.tag = indexPath.row; 
//Sorry for syntax 
    cell.lblName!.text = self.arrContacts[[indexPath.row] [email protected]"name"] as? String 
    cell.lblNumber!.text = self.arrContacts[[indexPath.row] [email protected]"number"] as? String 
} 

Теперь Выведите имя и номер на кране

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    let indexPath = NSIndexPath(forRow: indexPath.row, inSection: 0) 
    println("tap name = \(self.arrContacts[indexPath.row] ValueForKey:@"name"])") 
    println("tap Number = \(self.arrContacts[indexPath.row] ValueForKey:@"number"])") 
} 

Надеюсь, вы получили общее idea.Someone может преобразовать его в Синтаксис Swift.

+0

не работает. не удалось получить номера – AAA

+0

Вы преобразовали приведенный выше код в полный быстрый синтаксис? –

+0

да, изменено на быстрое. но та же проблема – AAA