Frage

Warum erhalte ich eine „out of scope“ Fehler, wenn ich versuche, die „url“ Variable in dieser Schleife zugreifen?

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

Die Klasse von sehr Artikel in den „self.winnerImageURLs“ NSMutableArray kommt zurück als NSCFString so bin ich nicht sicher, was die dealio hier ist.

Alle Ideen, was ich falsch mache ???

Danke

War es hilfreich?

Lösung

Wenn Sie sprechen über die URL-Variable in der Debugger Zugriff geschieht es eine ganze Menge. Es ist kein Problem an sich.

Andere Tipps

Short anwer ist, dass es soll so sein. Eine längere Antwort ist, dass NSString ist ein Klasse-Cluster.

Klasse Cluster

  

Ein Klasse-Cluster ist eine Architektur   dass Gruppen eine Reihe von privaten,   konkrete Subklassen im Rahmen eines öffentlichen,   abstrakte Superklasse. Die Gruppierung von   Klassen auf diese Weise eine bietet   vereinfachte Schnittstelle zum Benutzer, der   nur sieht die öffentlich sichtbar   die Architektur. Hinter den Kulissen,   aber die abstrakte Klasse ruft   up der Privatunterklasse am besten geeignet   für eine bestimmte Aufgabe.

Viele gängige Cocoa Klassen werden als Klassen Cluster implementiert, einschließlich NSArray, NSString und NSDictionary.

Sie erstellen und die Interaktion mit Instanzen des Clusters nur wie jede andere Klasse. Hinter den Kulissen aber, wenn Sie eine Instanz der öffentlichen Klasse zu erstellen, gibt die Klasse ein Objekt der entsprechenden Unterklasse auf der Erstellungsmethode aus, dass Sie aufrufen. (Sie dies nicht tun, und nicht, wählen Sie die aktuelle Klasse der Instanz.)

NSString Beispiel

NSString *a = @"UTF32.txt";

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

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

NSString *c = [storage string];

Jeder von a, b und c (und in 10,5 ist) eine Instanz einer anderen Privatunterklasse (und in der Tat, auf Mac OS X v10.5, jeweils). Obwohl jedes der Objekte einer privaten Unterklasse von NSString ist, ist es praktisch jedes der Objekte zu betrachten Instanzen der NSString Klasse sein.

über Klasse Cluster in Apple Developer-Website: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.html# // apple_ref / doc / uid / TP40002974-CH4-SW34

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top