2016-06-22 2 views
0

안녕하세요 저는 식별자를 사용하여 영역 데이터베이스에서 업데이트, 검색 등의 고유 식별자 (기본 키)를 만들어야하는이 객체를 사용합니다. 영역은이 상자를 지원하지 않으므로이를 식별하는 고유 한 방법을 만들고 싶습니다.고유 식별자 (기본 키)를 사용하여 객체 저장

class Swing: Object { 

    dynamic var latitude : Double = 0.0 
    dynamic var longitute : Double = 0.0 
    dynamic var speed : Double = 0.0 
    dynamic var date : NSDate = NSDate() 
} 

고유 ID로 NSDate를 사용할 수 있습니까? 아니면 id라는 새 열로 이동하고 UUIDString을 사용해야합니까? 새로운 개체 또는 장치 당 항상 고유 한 것입니까?

어떤 해결책이 더 안전 할 수 있습니까?

+0

사용 사례는 무엇입니까? '스윙'이란 무엇입니까? – Code

+0

UUIDString에 연속적인 값을 출력하는 테스트를 실행했다면이 질문을하지 않아도됩니다. – Dominic

답변

3

NSUUID을 기본 키로 사용하는 것이 더 안전 할 것입니다. 고유 한 것으로 보장되며, NSDate 값의 유형에 따라 속성에 저장하면 고유성이 확실히 보장 될 수 없습니다.

NSUUID는 128 비트 무작위로 생성 된 값이므로 다른 장치에서도 두 번 생성되는 동일한 문자열의 확률은 천문학적으로 작습니다.

class Swing: Object { 
    dynamic var id = NSUUID().UUIDString 
    dynamic var latitude : Double = 0.0 
    dynamic var longitute : Double = 0.0 
    dynamic var speed : Double = 0.0 
    dynamic var date : NSDate = NSDate() 

    override class func primaryKey() -> String? { 
     return "id" 
    } 
}