Question

Pourquoi suis-je recevoir une variable « hors de portée » erreur chaque fois que je tente d'accéder à la « url » dans cette boucle?

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

La classe de l'élément dans la très « self.winnerImageURLs » NSMutableArray revient comme NSCFString donc je ne suis pas sûr de ce que l'dealio est ici.

Toutes les idées sur ce que je fais mal ???

Merci

Était-ce utile?

La solution

Si vous parlez l'accès à la variable URL dans le débogueur, il arrive assez souvent. Ce n'est pas un problème en soi.

Autres conseils

Court anwer est qu'il est censé être comme ça. Une réponse est plus que NSString est un cluster de classe.

groupe classe

  

Un cluster de classe est une architecture   qui regroupe un certain nombre de privé,   les sous-classes concrètes dans le cadre d'un public,   abstrait superclasse. Le regroupement des   les classes de cette manière fournit une   interface simplifiée pour l'utilisateur, qui   ne voit que le public visible   architecture. Dans les coulisses,   cependant, la classe abstraite appelle   la sous-classe privée la plus adaptée   pour effectuer une tâche particulière.

De nombreuses classes de Cocoa communes sont mises en œuvre en tant que groupes de classe, y compris NSArray, NSString et NSDictionary.

Vous créez et d'interagir avec les instances du cluster comme vous le feriez pour tout autre classe. Dans les coulisses, cependant, lorsque vous créez une instance de la classe publique, la classe retourne un objet de la sous-classe appropriée en fonction de la méthode de création que vous invoquez. (Vous ne le faites pas, et ne peut pas, choisir la classe réelle de l'instance.)

Exemple NSString

NSString *a = @"UTF32.txt";

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

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

NSString *c = [storage string];

Chacun a, b et c est peut-être (et 10,5 est) une instance d'une sous-classe privée différente (et en fait, sous Mac OS X v10.5, chacun est). Bien que chacun des objets est d'une sous-classe privée de NSString, il est commode de considérer chacun des objets à des instances de la classe NSString.

A propos de Les clusters de classe dans Apple Developer site: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.html# // apple_ref / doc / uid / TP40002974-CH4-SW34

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top