我的变量有问题

时间:2013-04-04 11:55:02

标签: iphone ios variables return return-value

我创建了一个获取变量内容的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;

感谢您的帮助:)

2 个答案:

答案 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我给你写了一个样本:

http://bit.ly/10yWb36

使用你可以去的那些:

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);

享受编程!