0
我有一个对象,只有一个名为URL的类型为NSMutableSet的属性。我有一个执行这个循环中的视图控制器:对我来说为什么我的NSMutableSet为空?
NSString *link = [NSString stringWithFormat:@"document.links[%d].toString()", i];
NSString *links = [self.webView stringByEvaluatingJavaScriptFromString: link];
NSURL *URL = [[NSURL alloc] initWithString:links];
NSString *lastPath = [URL lastPathComponent];
if ([lastPath hasPrefix:comparisonString]) {
[model.URLs addObject:links];
}
NSLog(@"Count: %d", [model.URLs count]);
但日志功能打印0,我敢肯定我有一个少数情况下,因为我登录if语句是真的,也和看到它发射了几次。任何指针?
嗯。这里的模型只是NSObject的一个子类,它只有一个成员,NSMutableSet * URL和一个非原子和保留属性的属性。我有一个类似的模型,只有两个字符串,它工作正常,我必须手动调用一些NSString可能不需要的模型的alloc/init代码中的NSMutableSet的一些alloc/init函数? – cdietschrun 2011-04-09 02:49:32
任何财产必须正确初始化。如果在尝试访问该属性之前将字符串分配给字符串属性,那就是您需要的初始化。同样,您必须将您的网址属性设置为指向可变集,然后才能使用该集;否则,该属性只是一个零指针。很容易检查 - 只需在你的NSLog语句中放置一个断点并查看URLs属性即可。 – Caleb 2011-04-09 03:00:42
谢谢,看起来像我设计的副产品设置这些NSStrings之前访问他们像你说的,所以我看到发生了什么事。至于我的其他文件,我有视图和按钮来自xib文件,现在我意识到他们正在initWithNib初始化:...谢谢! – cdietschrun 2011-04-09 03:10:05