-2

変数の内容を取得するゲッターを作成しましたが、機能しません。

ここにコード:

-(void)documentURLReceived:(NSURL *)url{

    _getUrl = [[NSURL alloc] init];
    _getUrl = url;
    NSLog(@"Result: %@", _getUrl);
}
-(void)getUrl{
    NSLog(@"getUrl: %@", _getUrl);
}

コンソールの結果は次のとおりです。

結果:http://www.google.com

getUrl : (ヌル)

理由がわかりません!

ここに私の財産:

@property (strong, nonatomic) NSURL *getUrl;

ご協力いただきありがとうございます :)

4

2 に答える 2

2

ARC と最新の Xcode を使用している場合 - getURL メソッドを削除します - カスタム ロジックを実行する必要がない限り、これを上書きしないでください。さらに、getURL メソッドは何も返さず、void メソッドであるため、変数はおそらく設定されていますが、メソッドは自動生成されたゲッターを上書きしており、何も返していません。

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 /www.google.com

お役に立てれば

于 2013-04-04T12:02:18.273 に答える
-3

まず第一に、あなたはURLで何かを取得していますか?

いいえの場合 -> やり直す

はいの場合は、次のことを試してください。

_getUrl = [[NSURL alloc] init];
_getUrl = url;
[_getUrl retain];
NSLog(@"Result: %@", _getUrl);

プログラミングを楽しもう!

于 2013-04-04T11:58:12.047 に答える