2015-06-03 29 views
10

Sono nuovo nel Regno in Swift. C'è un modo per memorizzare una serie di stringhe in Realm Object?Archivia array in oggetto Realm

Ho un oggetto JSON come:

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

Come posso conservare messaggi matrice in permessi chiave?

risposta

-6

questa domanda già risposto da qualcuno, Si prega di verificare this link

Non attualmente bisogno di un RLMObject che contiene la stringa:

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

@implementation StringObject 
@end 

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

Ha chiesto di ... – sofacoder

11

Si potrebbe qualcosa di simile:

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() 
} 

In ogni modo, Penso che ora sia ben documentato in Realm Swift Documentation

3

Ecco una tecnica semplice che non richiede List<T> se sei sicuro che le tue stringhe possano essere tokenizzate in modo sicuro.

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"] 
    } 
}