LoginSignup
1
1

More than 5 years have passed since last update.

[RubyMotion] NSError ** とかを引数に取るメソッドを使う時どうすればいいか

Posted at

iOS SDK 使ってると,こんな感じのコードがよくあります.

NSHTTPURLResponse *res;
NSError *error;
NSURL *url = [NSURL URLWithString:@"http://google.com"];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
NSData *data = [NSURLConnection sendSynchronousRequest:req returningResponse:&res error:&error];

最後の[NSURLConnection sendSynchronousRequest: returningResponse: error:]の部分で,(NSHTTPURLResponse**)とか(NSError**)とかを引数に取ります.

この場合は,RubyMotionで書くとこうなります.

err_ptr = Pointer.new(:object)
res_ptr = Pointer.new(:object)
url = NSURL.URLWithString("http://google.com")
req = NSURLRequest.requestWithURL(url)
data = NSURLConnection.sendSynchronousRequest(
    req, 
    returningResponse:res_ptr,
    error:err_ptr)

@label.text = res_ptr[0].statusCode.to_s

簡単に言うと,(NSError**)とかを渡す所になっているメソッドは,Pointerのインスタンスを渡してあげて,error = err_ptr[0]とかしてデリファレンスして使ってやるといいです.

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1