2011-04-09 64 views
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语句是真的,也和看到它发射了几次。任何指针?

回答

2

你确定model.URL指向一个有效的NSMutableSet吗?如果它为零,那么log语句中的计数仍然为0,而-addObject:call将不会执行任何操作。

+0

嗯。这里的模型只是NSObject的一个子类,它只有一个成员,NSMutableSet * URL和一个非原子和保留属性的属性。我有一个类似的模型,只有两个字符串,它工作正常,我必须手动调用一些NSString可能不需要的模型的alloc/init代码中的NSMutableSet的一些alloc/init函数? – cdietschrun 2011-04-09 02:49:32

+0

任何财产必须正确初始化。如果在尝试访问该属性之前将字符串分配给字符串属性,那就是您需要的初始化。同样,您必须将您的网址属性设置为指向可变集,然后才能使用该集;否则,该属性只是一个零指针。很容易检查 - 只需在你的NSLog语句中放置一个断点并查看URLs属性即可。 – Caleb 2011-04-09 03:00:42

+0

谢谢,看起来像我设计的副产品设置这些NSStrings之前访问他们像你说的,所以我看到发生了什么事。至于我的其他文件,我有视图和按钮来自xib文件,现在我意识到他们正在initWithNib初始化:...谢谢! – cdietschrun 2011-04-09 03:10:05