这是我的第一个应用程序,实际上甚至不完全是我的应用程序,而是涉及重新使用现有应用程序来添加功能。
它涉及一个JSON源,我正在成功读入,然后尝试将URL的值传递给视图。这是我的应用程序代理中的代码,一旦读入提要,就会成功触发:
- (void)JSONFetch:(MYJSONFetch *)fetch gotTheCollection:(id)collection
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
self.testViewController.feedURL = [NSURL URLWithString:[collection objectForKey:@"Listings"]];
[JSONFetch release];
JSONFetch = nil;
}
然后在我的testViewController中我有这个viewDidLoad方法:
- (void)viewDidLoad {
[super viewDidLoad];
if(self.feedURL)
{
[self startDownload];
}
}
尽管我调试时,gotTheCollection方法将一个值传递给视图的feedURL,然后在视图中的if(self feedURL)检查失败,因此视图永远不会被填充。
由于我对这段代码很陌生,我不知道序列是否错误,或者可能是我传递变量的方式。
我知道描述相对模糊,但即使在基本层面上我也不知道这个功能是否在目标C中有效,但它不会导致任何错误,只是坐在那里没有加载因为它无法得到数据
更新:FeedURL的定义如下:H文件:
NSURL *feedURL;
然后
@property (nonatomic, retain) NSURL *feedURL;
然后在M文件中:
@synthesize feedURL;
感谢帮助人员,我终于决定重新启动整个升级,因为项目变得一团糟的重写代码,我无法确定哪些有效,哪些无效。因此,对此没有明确的答案,但我想弗兰克斯可能是最接近的,所以我会将其标记为答案。
答案 0 :(得分:1)
NSURL正在自动释放,您需要自己保留
将NSURL分配给feedUR,就像这样
self.testViewController.feedURL = [[NSURL URLWithString:[collection objectForKey:@"Listings"]] retain];
这也意味着你必须自己释放它。