2016-03-02 5 views
0

Я пытаюсь сохранить CKRecord на своих NSUserDefaults. Но насколько я вижу, по умолчанию не беру CKRecords, но возьму NSData.Преобразование CKRecord в NSData

Я ищу информацию о том, как конвертировать CKRecord в NSData. Можно ли это сделать?

Для NSData

func set_activeLinkRequest(record: CKRecord) { 
     print("PublicUsers - set_activeLinkRequest \(record)") 

     var data = NSData() 

     // convert the record into NSData 

     NSUserDefaults.standardUserDefaults().setObject(data, forKey: "activeLinkRequest") 
     NSUserDefaults.standardUserDefaults().synchronize() 
    } 

Вернуться к CKRecord

func get_activeLinkRequest() -> CKRecord { 
    let record = NSUserDefaults.standardUserDefaults().objectForKey("activeLinkRequest") as! NSData 

    // convert NSDate into CKRecord 

    print("PublicUsers = get_activeLinkRequest \(value)") 
    return record 
} 

ответ

3

Вот решение, надеюсь, что это поможет другим.

CKRecord в NSData к NSUserDefaults

func set_activeLinkRequest(record: CKRecord) { 
    print("PublicUsers - set_activeLinkRequest \(record)") 

    let data = NSKeyedArchiver.archivedDataWithRootObject(record) 

    NSUserDefaults.standardUserDefaults().setObject(data, forKey: "activeLinkRequest") 
    NSUserDefaults.standardUserDefaults().synchronize() 
} 

NSUserDefaults в NSData к CKRecord

func get_activeLinkRequest() -> CKRecord { 

    let data = NSUserDefaults.standardUserDefaults().objectForKey("activeLinkRequest") as! NSData  
    let record = NSKeyedUnarchiver.unarchiveObjectWithData(data) as! CKRecord 

    print("PublicUsers = get_activeLinkRequest \(record)") 
    return record 
} 
Смежные вопросы