NSManagedObject im Array über Bluetooth senden

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • NSManagedObject im Array über Bluetooth senden

    Hallo Leute,
    ich habe eine kleines Problemchen. Und Zwar möchte Ich per Bluetooth ein Array, bestehend aus mehren NSManagedObjects, senden und empfangen.

    Quellcode

    1. NSMutableData *message = [[NSMutableData alloc]init];
    2. NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:message];
    3. [archiver encodeObject:einArray forKey:SEND_ARRAY_KEY];
    4. [archiver finishEncoding];
    5. NSError *sendError = nil;
    6. [session sendDataToAllPeers:message withDataMode:GKSendDataReliable error:&sendError];



    Quellcode

    1. - (void) receiveData: (NSData*) data fromPeer: (NSString*) peerID
    2. inSession: (GKSession*) session context: (void*) context {
    3. NSKeyedUnarchiver *unarchiver =
    4. [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
    5. if ([unarchiver containsValueForKey:SEND_VOKABEL_KEY]) {
    6. array = [[unarchiver decodeObjectForKey:SEND_ARRAY_KEY] retain];
    7. }
    8. [unarchiver release];
    9. }
    Alles anzeigen

    Es kommt folgender Fehler:2011-12-24 12:46:27.816 Vokabel[5917:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSManagedObject encodeWithCoder:]: unrecognized selector sent to instance 0x1e55e0'
    Ich hoffe ihr könnt mir helfen.
  • Du musst Dir die Werte der Properties in einem NSDictionary speichern (-valuesForKeys oder so,siehe Doku), je nachdem ob Du genau die gleichen MO Instanzen wieder benötigst, auch die -objectID. Das NSDictionary kannst Du dann speichern und senden (bzw.ein Array aus Dictionary-Instanzen), sofern alle Properties NSCoding konform sind (NString,NSNumber,NSDate etc.). Eventuell musst Du die objectID-URL in einen NString umwandeln, bin gerade unterwegs&weiss nicht genau,ob NSURL NSCoding-konform ist. Details siehe Doku... Beste Grüsse, Markus