2015-06-03 9 views
10

Jestem nowa w Realm in Swift. Czy istnieje sposób na przechowywanie tablic ciągów w Obiekty Realm?Tablica magazynów w obiekcie Realm

Mam obiekt JSON jak:

"firstName": "John", 
"imgName": "e9a07f7d919299c8fe89a30022151135cd63773f.jpg", 
"lastName": "Wood", 
"permissions": { 
    "messages": ["test", "check", "available"] 
}, 

Jak mogę zapisać wiadomości tablicę w uprawnieniami kluczowych?

Odpowiedz

-6

To pytanie odpowiedział już przez kogoś, proszę sprawdzić this link

Zdajesz aktualnie potrzebują RLMObject który zawiera ciąg:

@interface StringObject : RLMObject 
@property NSString *value; 
@end 
RLM_ARRAY_TYPE(StringObject) 

@implementation StringObject 
@end 

@interface Object : RLMObject 
@property RLMArray<StringObject> *array; 
@end 
+4

Prosił o szybkie ... – sofacoder

11

Mogłabyś coś takiego:

class Messages: Object { 
    dynamic var message = "" 
} 

class Permission: Object { 
    let messages = List<Messages>() 
} 

class Person: Object { 
    dynamic var firstName = "" 
    dynamic var imgName = "" 
    dynamic var lastName = "" 
    var permissions : Permission = Permission() 
} 

Anyways, Myślę, że teraz jest dobrze udokumentowany w Realm Swift Documentation

3

Oto jedna prosta technika, która nie wymaga List<T>, jeśli masz pewność, że twoje struny mogą być bezpiecznie strzeżone.

class Person: Object { 
    private let SEPARATOR = "||" 

    dynamic var permissionsString: String? = nil 
    var permissions: [String] { 
     get { 
      guard let perms = self.permissionsString else { return [] } 
      return perms.componentsSeparatedByString(SEPARATOR) 
     } 
     set { 
      permissionsString = newValue.count > 0 ? newValue.joinWithSeparator(SEPARATOR) : nil 
     } 
    } 

    override static func ignoredProperties() -> [String] { 
     return ["permissions"] 
    } 
}