2011-09-19 8 views

Respuesta

14

NSMutableDictionary hereda de NSDictionary. Por lo tanto, writeToFile debe estar disponible para ambas clases.

7

NSMutableDictionary es una subclase de NSDictionary, por lo que el método writeToFile debe estar disponible para su objeto sin tener que realizar conversiones o conversiones.

6

Como ya se ha discutido aquí:

How to save a NSMutableDictionary into a file in documents?

que no es necesario para convertirlo.

Pero si realmente desea, sólo tiene que utilizar el método en su copy o el método NSMutableDictionarydictionaryWithDictionary: en NSDictionary. Ambos proporcionan un NSDictionary de NSMutableDictionary.

3

Un NSMutableDictionary es un NSDictionary puesto que es una subclase. Normalmente, la relación de una subclase a su superclase se llama: "es un".

13

Para los que vienen aquí genuinamente buscando la conversión de NSMutableDictionary a NSDictionary:

NSMutableDictionary *mutableDict = [[[NSDictionary alloc] initWithObjectsAndKeys: 
           @"value", @"key"] mutableCopy]; 

NSDictionary *dict = [NSDictionary dictionaryWithDictionary:mutableDict]; //there you have it 
1

Para hacer frente al título de la pregunta actual y no el contenido (ya que he buscado para este Q) en realidad se puede confiar en copyWithZone: para obtener hasta un diccionario inmutable.

NSMutableDictionary *mutableDict = [[NSMutableDictionary alloc] init]; 
mutableDict[@"key"] = @"value"; 
NSDictionary *immutableDict = [mutableDict copy]; 
Cuestiones relacionadas