Domanda

    NSDictionary *topic = [spaces objectAtIndex:i];
    NSInteger topicid = [topic valueForKey:@"TOPICID"];

Quando ho eseguito questo argomento e stampare ricevo il seguente:

Printing description of topic:
<CFDictionary 0xdb2a70 [0x30307a00]>{type = mutable, count = 2, capacity = 12, pairs = (
    10 : <CFString 0xdb5300 [0x30307a00]>{contents = "TOPICID"} = 29
    12 : <CFString 0xdb53a0 [0x30307a00]>{contents = "TOPICNAME"} = <CFString 0xdb5360 [0x30307a00]>{contents = "zzzzzzzz"}
)}

Tuttavia, quando guardo TopicId, il valore è sempre un indirizzo di memoria. Che cosa sto facendo di sbagliato?

È stato utile?

Soluzione

Forse il valore è in realtà un NSNumber. Si potrebbe ottenere questo utilizzando:

NSInteger topicid = [[topic objectForKey:@"TOPICID"] intValue];

Altri suggerimenti

I dizionari possono contenere solo oggetti, non primitive. Tutto ciò che è memorizzato in là (come suggerito Xetius) è probabilmente avvolto in una qualche forma. Sembrerebbe che TopicId è un NSString.

Il risultato matrice, si può vedere TopicId è un valore stringa (NSString). Quindi, si vorrebbe impostare come descrive Xetius -. Ma non perché si tratta di un NSNumber, perché NSString ha un metodo "intValue"

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top