我创建了一个获取变量内容的getter,但它不起作用。
这里是代码:
-(void)documentURLReceived:(NSURL *)url{
_getUrl = [[NSURL alloc] init];
_getUrl = url;
NSLog(@"Result: %@", _getUrl);
}
-(void)getUrl{
NSLog(@"getUrl: %@", _getUrl);
}
这里的结果是:#/ p>
结果:
http://www.google.com
getUrl:(null)
我不明白为什么!
这是我的财产:
@property (strong, nonatomic) NSURL *getUrl;
感谢您的帮助:)
答案 0 :(得分:2)
如果你正在使用ARC和最新的Xcode - 摆脱getURL方法 - 你不应该覆盖它,除非你需要做自定义逻辑,此外,你的getURL方法什么都不返回,是一个void方法 - 所以变量最有可能设置,但你的方法是覆盖自动生成的getter并且什么也没有返回。
在Xcode中进行了测试
在头文件中我有:
@property (nonatomic, strong) NSURL *getURL;
然后在实施文件中我有:
- (void)documentURLReceived:(NSURL *)url
{
_getURL = url;
NSLog(@"%@",_getURL);
}
输出:
2013-04-04 23:29:27.681 VitalityDesignTestSuite [90518:c07] http://www.google.com
okie dokie我给你写了一个样本:
使用你可以去的那些:
MyViewController *mvc = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
//Now you can set the myURL variable directly
[mvc setMyURL:[NSURL URLWithString:@"http://www.google.com"]];
NSLog(@"Direct Setting: %@",mvc.myURL);
//OR you can call the method your wrote
[mvc documentDidReceiveURL:[NSURL URLWithString:@"http://www.google.com"]];
NSLog(@"Selector Setting: %@",mvc.myURL);
输出:
2013-04-04 23:39:09.407 VitalityDesign [92197:c07]直接设定:http://www.google.com 2013-04-04 23:39:09.408 VitalityDesign [92197:c07]选择器设置:http://www.google.com
希望这会有所帮助
答案 1 :(得分:-3)
首先,你在网址上得到了什么?
如果否, - >解决它
如果是,则尝试执行以下操作:
_getUrl = [[NSURL alloc] init];
_getUrl = url;
[_getUrl retain];
NSLog(@"Result: %@", _getUrl);
享受编程!