2017-09-15 1 views
0

현재 블루투스 기기의 정보를 지속적으로 저장하려고하는 iOS 10 프로젝트에서 작업하고 있습니다. 장치를 연결하려면 사용자 정의 클래스의 세 변수가 필요합니다. 예를 들어 : (응용 프로그램이 살해 될 때 너무도)맞춤 클래스의 영구 데이터 저장

var deviceInformation: BluetoothDeviceInfo? 

이 정보는 전 세계적으로 사용 가능하고 modifyable, 그리고 지속해야한다. CoreData를 사용하려고 생각했지만 연결되어있는 최대 장치가 하나이기 때문에 약간의 느낌이 듭니다. 또한 커스텀 클래스를 핵심 데이터 모델로 저장하는 것은 그리 좋지 않습니다. 다른 옵션은 싱글 톤이지만 앱 종료시 데이터가 손실 될 수 있습니다. 마지막으로 userdefaults가 옵션이 될 수 있지만 사용자 지정 클래스에서 동일한 문제가 발생합니다. 그렇습니까?

따라서, 최선의 선택은 무엇입니까?

+0

NSCoding을 사용하여 사용자 기본 데이터에 사용자 지정 클래스 데이터를 저장할 수 있습니다. –

+0

커스텀 클래스를 정말로 저장해야합니까? 'String'과 같은 classusijg 기본 유형을 다시 생성하는 데 필요한 세 가지 값을 저장할 수 없습니까? 그런 다음 UserDefaults에 간단히 데이터를 저장할 수 있습니다. – Paulw11

답변

0

는 이제 사용자 정의 클래스 데이터가 지속 될 것입니다 CustomModel

class CustomModel: NSObject, NSCoding { 

var customArray : [SomeOtherCustomClass] = [] 

required convenience init?(coder aDecoder: NSCoder) { 
    self.init() 
    // Save your array or any custom objects s follows 
    customArray = aDecoder.decodeObject(forKey: "customArrayKey") as? [SomeOtherCustomClass] ?? [] 

} 

// For getting info 

func encode(with aCoder: NSCoder) { 
    aCoder.encode(customArray, forKey: "customArrayKey") 
} 
} 

라는 클래스가 있다고 할 수 있습니다.

어려움이 있으면 알려주세요.