신속

2016-12-08 1 views
0

나는 동일한 셀에 연락처 이름과 전화 번호를 가져 싶지만 내가 여기 코딩 내 전체를 추가 한 두 번째 셀에서 첫 번째 셀 및 번호에 이름을 가져옵니다 ....신속

import UIKit 
import AddressBook 
import CoreData 
class ContactViewController: UIViewController,CNContactPickerDelegate,UITableViewDelegate,UITableViewDataSource{ 
     var contactStore = CNContactStore() 
    var mycontact:CNContactStore! 
    var myContacts = [CNContact]() 
    var names = [NSManagedObject]() 
    var numbers = [NSManagedObject]() 
    var yourcont:NSMutableArray = NSMutableArray() 
    @IBOutlet weak var FirstTableView: UITableView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     navigationController!.navigationBar.barTintColor = UIColor.blueColor() 
     navigationController!.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()] 
     // Do any additional setup after loading the view. 


    } 

    @IBAction func AddButtonTapped(sender: AnyObject) { 

     let alert = UIAlertController(title: "New Contact", 
             message: "Add a new contact", 
             preferredStyle: .Alert) 

     let saveAction = UIAlertAction(title: "Save", 
             style: .Default, 
             handler: { (action:UIAlertAction) -> Void in 

             let textField = alert.textFields![0] as UITextField 
             self.saveName(textField.text!) 

             let sedfield = alert.textFields![1] as UITextField 
             self.saveNum(sedfield.text!) 
             self.FirstTableView.reloadData() 
     }) 

     let cancelAction = UIAlertAction(title: "Cancel", 
             style: .Default) { (action: UIAlertAction) -> Void in 
     } 

     alert.addTextFieldWithConfigurationHandler { 
      (textField: UITextField) -> Void in 
      textField.placeholder = "Enter Your Name" 

     } 
     alert.addTextFieldWithConfigurationHandler { 
      (sedfield: UITextField) -> Void in 
      sedfield.placeholder = "Enter your Number" 

     } 

     alert.addAction(saveAction) 
     alert.addAction(cancelAction) 

     presentViewController(alert, 
           animated: true, 
           completion: nil) 
    } 
    func saveName(name: String) { 

     let appDelegate = 
      UIApplication.sharedApplication().delegate as! AppDelegate 

     let managedContext = appDelegate.managedObjectContext 


     let entity = NSEntityDescription.entityForName("Person", 
                 inManagedObjectContext:managedContext) 

     let person = NSManagedObject(entity: entity!, 
            insertIntoManagedObjectContext: managedContext) 


     person.setValue(name, forKey: "name") 


     do { 
      try managedContext.save() 

      names.append(person) 
     } catch let error as NSError { 
      print("Could not save \(error), \(error.userInfo)") 
     } 
    } 
    func saveNum(name: String) { 

     let appDelegate = 
      UIApplication.sharedApplication().delegate as! AppDelegate 

     let managedContext = appDelegate.managedObjectContext 


     let entity = NSEntityDescription.entityForName("Person", 
                 inManagedObjectContext:managedContext) 

     let person = NSManagedObject(entity: entity!, 
            insertIntoManagedObjectContext: managedContext) 


     person.setValue(name, forKey: "number") 


     do { 
      try managedContext.save() 

      numbers.append(person) 
     } catch let error as NSError { 
      print("Could not save \(error), \(error.userInfo)") 
     } 
    } 
    @IBAction func LeftTapped(sender: AnyObject) { 
     let appDelegate:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
     appDelegate.centerContainer?.toggleDrawerSide(MMDrawerSide.Left, animated: true, completion: nil) 
      } 

      func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
      if(section == 0) { 
       return names.count 
      } 
       return numbers.count 
    } 
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("ContactCell") as! TableViewCell 
     let personname = names[indexPath.row] 
    cell.ConName.text = personname.valueForKey("name") as? String 
    let personnum = numbers[indexPath.row] 
    cell.ConNumber.text = personnum.valueForKey("number") as? String 

     return cell 
    } 
    func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool 
    { 
     return true 
    } 

    func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) 
    { 
     if editingStyle == .Delete 
     { 
      numbers.removeAtIndex(indexPath.row) 
      tableView.reloadData() 
     } 
    } 
    override func viewWillAppear(animated: Bool) { 
     super.viewWillAppear(animated) 


     let appDelegate = 
      UIApplication.sharedApplication().delegate as! AppDelegate 

     let managedContext = appDelegate.managedObjectContext 


     let fetchRequest = NSFetchRequest(entityName: "Person") 


     do { 
      let results = 
       try managedContext.executeFetchRequest(fetchRequest) 
      names = results as! [NSManagedObject] 
      numbers = results as! [NSManagedObject] 

      print(results) 
     } catch let error as NSError { 
      print("Could not fetch \(error), \(error.userInfo)") 
     } 
    } 
      override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 
+0

맞춤 TableViewCell을 사용하고 있습니까 ?? – OverD

+0

예 .... 사용자 정의 셀을 사용 중입니다. –

+0

UITableViewCell의 서브 클래스 이름을 무엇입니까 ?? 그리고 당신은 @IBOutlets 모두 연결되어 있습니다 – OverD

답변

0

스토리 보드에서 표보기 셀 선택 및 자막으로 스타일 설정

+0

문제가되지 않습니다. ai는 올바르게 가정 했으므로 코딩에 문제가있는 것 같습니다. 클래스의 두 변수 즉, var 이름과 숫자 그래서 내가 같은 세포에서 구문 분석 할 수 없다 ... 그냥 내 코드를 한번만 거치면 –

+0

do { } 결과 = 시도 managedContext.executeFetchRequest (fetchRequest) names = results as! [NSManagedObject] numbers = 결과 as! [NSManagedObject] 인쇄 (결과) } 캐치 } – aahmetbas

+0

이름과 번호가 같은 결과를 – aahmetbas