为什么每次尝试访问此循环中的“url”变量时都会出现“超出范围”错误?
for(NSString *url in self.winnerImageURLs) {
[mediaItemString appendFormat:@"{\"type\":\"image\",\"src\":\"%@\",\"href\":\"%@\"},", url, url];
}
“self.winnerImageURLs”NSMutableArray中的非常项目的类别以NSCFString的形式返回,所以我不确定这里的处理是什么。
关于我做错的任何想法???
由于
答案 0 :(得分:1)
简称,它应该是那样的。更长的答案是NSString
是一个类群。
班级群组
类集群是一种体系结构 那些私人团体, 公共领域的具体子类, 抽象的超类。分组 以这种方式提供的课程 简化了用户界面,谁 只看到公开可见 建筑。在幕后, 但是,抽象类正在调用 最适合的私有子类 执行特定任务。
许多常见的Cocoa
类都是作为类群实现的,包括NSArray
,NSString
和NSDictionary
。
您可以像创建任何其他类一样创建群集实例并与之交互。但是,在幕后,当您创建公共类的实例时,该类将根据您调用的创建方法返回相应子类的对象。 (您不能,也不能选择实例的实际类。)
NSString示例
NSString *a = @"UTF32.txt";
NSString *b = [NSHomeDirectory() stringByAppendingPathComponent:a];
NSTextStorage *storage = [[NSTextStorage alloc] initWithString:b];
NSString *c = [storage string];
a,b和c中的每一个都可以(并且在10.5中)是不同私有子类的实例(事实上,在Mac OS X v10.5中,每个都是)。虽然每个对象都是NSString
的私有子类,但将每个对象视为NSString
类的实例很方便。
关于Apple开发人员网站中的类群集:http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.html#//apple_ref/doc/uid/TP40002974-CH4-SW34
答案 1 :(得分:1)
如果您正在讨论在调试器中访问url变量,那么它会发生很多。这本身并不是问题。