2016-11-21 2 views
0

Ich bekomme aus dem Datenbankwörterbuch, in dem es ein oder mehrere Objekte gibt . In Zukunft kann ich in keiner Weise mit ihm als App-Crash arbeiten. Ich habe versucht, viele Möglichkeiten, aus dem Wörterbuch NSNull Objekte, Verfahren removeObjectForKey aber jeden Versuch zu entfernen, dies zu tun bekomme ich einen Fehler, der ein Array von Grunde ist:Ich bekomme aus dem Datenbankwörterbuch, in dem es ein oder mehrere Objekte gibt NSNull

- [__ NSArrayM removeObjectForKey:]: unrecognized selector sent to an instance 

Und ich kann diese Objekte durch die Methode des Array nicht entfernen removeObjectAtIndex wie dieses Wörterbuch. Ich dachte nur, wie dies zu tun ist, diese Objekte nach Typ zu entfernen. Ist es möglich, das Objekt aus dem Wörterbuch zu entfernen, das entspricht? Oder gibt es eine andere Lösung für dieses Problem?

Vielen Dank für jede Hilfe!

+2

Veröffentlichen Sie den Inhalt Ihres Quellwörterbuchs oder Array oder was auch immer es sein mag. – Frankie

+0

'NSArrayM' ist eindeutig ein veränderbares Array (' NSMutableArray'), kein Wörterbuch. Arrays basieren auf Indizes, Wörterbücher basieren auf Schlüsseln. – vadian

Antwort

0

Diese Schleife (angepasst von this post) sollte Ihnen helfen, die NSnull-Einträge mit einer Zeichenfolge Ihrer Wahl zu ersetzen (Vergeben Sie Tippfehler, ich bin nicht vor meinem Computer).

for(NSString *key in yourDictionary) { 
    id dictionaryEntry= [yourDictionary objectForKey:key]; 
    if(!dictionaryEntry) { 
    [newDictionary setObject:@"string" forKey:key]; 
    } else { 
    [newDictionary setObject:[yourDictionary objectForKey:key] forKey:key]; 
    } 
} 
0

Sie sagen:

And I can not remove these objects by method the array "removeObjectAtIndex" as this dictionary.

Leider ist Ihr Fehler:

[__ NSArrayM removeObjectForKey:]: unrecognized selector

Ist Ihnen nicht zustimmen. Du hast ein Array. Und der Grund, warum Sie removeObjectAtIndex nicht verwenden können, ist, weil es unveränderlich ist.

+0

das Problem ist, dass ich in den Datenbankobjekten im Wörterbuch behalte und ich Wörterbuch zurückgab. aber wenn es nsnull bekommt, dann gibt ein Array zurück –

+0

Dann klingt das wie ein anderes Problem. Die Lösung für das obige Problem besteht darin, dass Sie versuchen, Dictionary-Methoden für ein Array aufzurufen. – Frankie

0

Sie einen Schlüssel aus einem Array entfernen

Note down that you cannot remove a key from an array. Than this error is obvious.

Auch für removeObjectAtIndex

Make sure your array should be mutable. Then you can use removeObjectAtIndex.

Hoffe, dass es für Sie arbeitet.

Verwandte Themen