【发布时间】:2012-02-23 06:00:30
【问题描述】:
我正在创建一个具有 2 个属性的新 UIViewController:
@property (retain, nonatomic) NSURL *url;
@property (retain, nonatomic) NSString *title;
并合成:
@synthesize url = _url;
@synthesize title = _title;
在我的自定义初始化方法中,我没有像内存管理指南所说的那样使用 setter,但是当我需要使用 viewDidLoad 中的属性时,url 似乎是空的,标题没有
- (id)initWithURL:(NSURL *)url andTitle:(NSString *)titleTemp
{
self = [super initWithNibName:@"navigatorViewController" bundle:nil];
if (self) {
_url = url;
_title = titleTemp;
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[_titreBarButtonItem setTitle:_title];
NSURLRequest *urlRequest = [[NSURLRequest alloc] initWithURL:_url];
[_webView loadRequest:urlRequest];
[urlRequest release];
}
我可以看到我的标题,但我的网页视图是空白的。 如果我在 init 中使用 self.url,它就可以工作!
你有什么想法吗?
PS:这是我如何调用我的 init :
NSString *urlString = [[[NSBundle mainBundle] pathForResource:@"infos" ofType:@"html"] copy];
NSURL *url = [[NSURL alloc] initFileURLWithPath:urlString];
[urlString release];
navigatorViewController *navigatorVC = [[navigatorViewController alloc] initWithURL:url andTitle:@"Infos"];
[url release];
[self presentViewController:navigatorVC animated:YES completion:nil];
[navigatorVC release];
非常感谢
【问题讨论】:
-
如果您使用的是
@synthesize,请阅读this,了解“在后台”发生的情况。还要确保你了解objective-c中的内存管理retain、release等。
标签: iphone objective-c ios memory-management nsurl