2014-12-09 4 views
0

내가 저장 코어 데이터와 신속한 응용 프로그램이 속성 다음을 확인스위프트 : 코어 데이터가

  • 이름
  • 이메일

의 ViewController이를 수집하기 위해 내가 가진 정보를 올바르게 설정하고이 정보를 핵심 데이터 내에 저장합니다. 저장 버튼이있는 3 가지 속성에 대한 텍스트 필드가 있으며 저장됩니다.

"키"에 대한 텍스트 필드와 키가 허용되는지 여부를 표시하는 레이블과 함께 키를 확인하는 단추가있는 다른 스토리 보드 ViewController가 있습니다. 사용자가 올바른 키를 입력하면 "계속 버튼"이 표시됩니다.

내 문제 : 내 응용 프로그램이 정보를 검색하고 저장된 정보를 내 콘솔에 표시합니다. 그러나 키를 구체적으로 확인하지 않고 계속 단추에 대한 정보를 허용합니다. 전체 엔터티 대신 속성을 호출하고 계속 사용하려면 해당 정보를 어떻게 사용합니까? 속성을 검색하기 위해 Entity에 액세스해야한다고 가정하지만 어떻게해야합니까? 여기

는 확인 버튼에 대한 내 코드입니다 :

@IBAction func verifyKey() 
{ 

    var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate) 
    var context: NSManagedObjectContext = appDel.managedObjectContext! 

    var request = NSFetchRequest(entityName: "User") 
    request.returnsObjectsAsFaults = false 

    var results:NSArray = context.executeFetchRequest(request, error: nil)! 

    if (results.count > 0) 
    { 
     btnContinueAppears.hidden = false 
     keyLabel.text = "Key Accepted" 
     keyLabel.resignFirstResponder() 
     keyLabel.textColor = UIColor.greenColor() 
     for res in results 
     { 
      println(res) 
     } 
    } 
    else 
    { 
     btnContinueAppears.hidden = true 
     keyLabel.text = ("Key Denied, Access Denied") 
     keyLabel.resignFirstResponder() 
     keyLabel.textColor = UIColor.redColor() 
     println("0 Results Returned...Potential Error") 
    } 
} 

답변

0

단순히 배열에서 개체에 액세스 한 다음이 같은 그것의 속성에 액세스

당신이에 클래스를 지정하지 않은 경우
@IBAction func verifyKey() 
{ 

    var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate) 
    var context: NSManagedObjectContext = appDel.managedObjectContext! 

    var request = NSFetchRequest(entityName: "User") 
    request.returnsObjectsAsFaults = false 

    var results:NSArray = context.executeFetchRequest(request, error: nil)! 

    if (results.count > 0) 
    { 
     let aResult = results.first! as NSManagedObject 
     btnContinueAppears.hidden = false 
     keyLabel.text = "Key Accepted" 
     keyLabel.resignFirstResponder() 
     keyLabel.textColor = UIColor.greenColor() 
     for res in results as [NSManagedObject] 
     { 
      let textColor = res.valueForKey("color") 
     } 
    } 
    else 
    { 
     btnContinueAppears.hidden = true 
     keyLabel.text = ("Key Denied, Access Denied") 
     keyLabel.resignFirstResponder() 
     keyLabel.textColor = UIColor.redColor() 
     println("0 Results Returned...Potential Error") 
    } 
} 

엔티티가 아니라면, kVc getter 메소드를 사용하여 valueForKey :를 사용하여 속성 값에 액세스해야합니다. 그렇지 않으면 단순히 클래스를 사용하고 일반 클래스의 속성에 액세스하는 것과 같은 액세스 특성을 사용할 수 있습니다.

희망이 있습니다. 내가이 줄을 추가하여 해결 한

0

은 :

request.predicate = NSPredicate(format: "key = %@", "" + keyEnter.text) 

난 후 추가했습니다 :

request.returnsObjectsAsFaults = false  

이 근무하고 데이터베이스 내에서 키를 확인하고 있습니다.

귀하의 의견에 진심으로 감사드립니다. :)

관련 문제