Domanda

Perché mi appare un "fuori portata" errore ogni volta che provo ad accedere alla variabile "url" in questo ciclo?

for(NSString *url in self.winnerImageURLs) {
        [mediaItemString appendFormat:@"{\"type\":\"image\",\"src\":\"%@\",\"href\":\"%@\"},", url, url];
    }

La classe di molto voce nei "self.winnerImageURLs" NSMutableArray ritorna come NSCFString quindi non sono sicuro di quello che la dealio è qui.

Tutte le idee su quello che sto facendo di sbagliato ???

Grazie

È stato utile?

Soluzione

Se si sta parlando di accesso alla variabile URL nel debugger, succede un bel po '. Non è un problema in sé.

Altri suggerimenti

Breve Anwer è che si suppone che sia così. Una risposta è più che NSString è un cluster di classe.

Class gruppo

  

Un gruppo classe è un'architettura   che raggruppa un certo numero di privati,   sottoclassi concrete sotto un pubblico,   superclasse astratta. Il raggruppamento di   classi in questo modo fornisce una   Interfaccia semplificata per l'utente, il quale   vede solo il visibile pubblicamente   architettura. Dietro le quinte,   però, la classe astratta sta chiamando   la sottoclasse privato più adatto   per l'esecuzione di una determinata attività.

Molte classi comuni Cocoa sono implementate come cluster di livello, tra cui NSArray, NSString e NSDictionary.

È possibile creare e interagire con le istanze del cluster proprio come si farebbe con qualsiasi altra classe. Dietro le quinte, però, quando si crea un'istanza della classe pubblica, la classe restituisce un oggetto della sottoclasse appropriato in base al metodo di creazione che si richiama. (Non lo sai, e non è possibile, scegliere la classe effettiva dell'istanza.)

NSString esempio

NSString *a = @"UTF32.txt";

NSString *b = [NSHomeDirectory() stringByAppendingPathComponent:a];

NSTextStorage *storage = [[NSTextStorage alloc] initWithString:b];

NSString *c = [storage string];

Ognuno di a, b e c può essere (ed in 10.5 è) un'istanza di una diversa sottoclasse privata (e infatti, su Mac OS X v10.5, ciascuno è). Sebbene ciascuno degli oggetti è di una sottoclasse privata di NSString, è conveniente prendere in considerazione ciascuno degli oggetti di essere istanze della classe NSString.

A proposito di Class Cluster nel sito Apple Developer: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.html# // apple_ref / doc / uid / TP40002974-CH4-SW34

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