2017-11-23 1 views
0

iOS에서 오프라인 데이터를 저장하기 위해 영역 DB를 사용합니다. 루프를 사용하지 않고 배열 값을 영역 DB에 직접 저장할 수 있습니까? 기본적으로영역 데이터베이스에 배열 값 저장

+0

왜 for 루프를 사용하지 않으시겠습니까? – Sweeper

+0

영역에 데이터를 저장하는 방법을 일부 코드로 표시 할 수 있습니까? –

답변

0

, 당신 이 작업을 수행 할 수없는 영역은 Lists 사용

목록 일대 관계를 정의하는 데 사용 영역의 컨테이너 유형입니다.

Swift의 Array와 마찬가지로 List는 에 저장되는 Object 형식으로 매개 변수화 된 제네릭 형식입니다.

class MyObject: Object { 
    dynamic var name = "Default" 
} 

func listToArray() { 
    let objectsArray = [MyObject(), MyObject(), MyObject(), MyObject(), MyObject()] 
    var objectsRealmList = List<MyObject>() 

    objectsRealmList = objectsArray 
} 

당신이 영역 목록에 배열을 할당 할 수 없습니다 불법 것 objectsRealmList = objectsArray 같은 것을 생각하는 경우.

따라서, this answer에서 같은 논리로, 당신은 objectsArray을 반복해야합니다 :

func arrayToList() { 
    let objectsArray = [MyObject(), MyObject(), MyObject(), MyObject(), MyObject()] 
    let objectsRealmList = List<MyObject>() 

    // this one is illegal 
    //objectsRealmList = objectsArray 

    for object in objectsArray { 
     objectsRealmList.append(object) 
    } 

    // storing the data... 
    let realm = try! Realm() 
    try! realm.write { 
     realm.add(objectsRealmList) 
    } 
} 

일반적으로 목록 개체의 속성으로 될 것입니다, 당신은 개체 자체를 추가해야합니다.

관련 문제