2017-10-02 1 views
1

나는이 클래스는 키 이름에 대해 키 값 코딩을 준수하지 않습니다. '

public class Users: NSObject { 
    var name: String? 
    var email: String? 
} 

다음과 같이 하나의 클래스 이름의 사용자를 생성하고

var regUser = [Users]() 

func fetchUser(){ 
    Database.database().reference().child("users").observe(.childAdded, with: {(DataSnapshot) in 
     if let dictionary = DataSnapshot.value as? [String: AnyObject]{ 
      let user = Users() 

      user.setValuesForKeys(dictionary) 
      self.users.append(user) 

      DispatchQueue.main.async { 
       self.tableView.reloadData() 
      } 
      print(user.email) 
     } 
    }, withCancel: nil) 
} 

다음 오류가 발생하는 다른 클래스는 사용자 클래스의 배열을 만들 :

"사용자 0x60400028fdc0> setValue : forUndefinedKey :] :이 클래스는 키 이름에 대해 키 값을 코딩하지 않습니다. "

답변

3

키 - 값 코딩은 오브젝티브 C에 의존하며, 스위프트 4와 새로운 목표 - C 추론 규칙에 따라, 귀하의 nameemail 속성을 사용할 수 없습니다.

@objc var name: String? 

을하거나 수업 시간에 모든 것이 가능하다는 것을 말할 수있다 :

당신은 @objc로 개별 속성을 표시 할 수 있습니다 도움말 나 제대로 그 작업

@objcMembers 
public class Users: NSObject { 
+0

감사합니다. –

+0

완벽한 답변 ... – Ewerson

관련 문제