objective cの文法について質問です。

http://www.appbank.net/2012/07/03/iphone-news/435776.php
このページの4/5あたりのコードについてなのですが
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
else{
NSError* error; // 追加
NSArray *statuses = [NSJSONSerialization JSONObjectWithData:responseData // 追加
options:NSJSONReadingMutableLeaves // 追加
error:&error]; // 追加
if(statuses){ // 追加
NSLog(@"%@", statuses); // 追加
}else{ // 追加
NSLog(@"%@", error); // 追加
} // 追加
}
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
error:&errorの部分の&はなんのためにあるんでしょうか?この&がどんな役割を持っているのかがわかりません。参考になるページだけでも紹介していただけると嬉しいです。プログラミングに関して質問するのは初めてなのでわかりにくい部分もあると思いますがよろしくお願いします(^_^;)

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/09/24 07:00:36
  • 終了:2013/09/28 01:01:18
id:Homma333

この&はerrorのメモリーのアドレスを参照するためのものだいということは調べてわかりました。しかしなぜここでJSONobjectiWithDataメソッドにerrorのメモリーアドレスを渡す必要があるんでしょうか?

ベストアンサー

id:degucho No.1

degucho回答回数256ベストアンサー獲得回数682013/09/24 11:19:25

http://pokotsun.mydns.jp/?p=92
https://developer.apple.com/library/mac/documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40010946-CH1-SW2
ダブルポインタ、ポインタのポインタ、などで検索すると出てきますが
関数実行後に戻り値(この場合はエラーメッセージ)を受け取るためです。
宣言時はNSError* error;でなにも入っていませんよね。
つけないで渡すと値渡しで一方通行になるのでアドレスを渡して
関数内で書き換えてもらうのです

id:Homma333

なるほど!理解出来ました!ありがとうございました。また機会がありましたらよろしくお願いします(・∀・)

2013/09/28 01:01:08

その他の回答(0件)

id:degucho No.1

degucho回答回数256ベストアンサー獲得回数682013/09/24 11:19:25ここでベストアンサー

http://pokotsun.mydns.jp/?p=92
https://developer.apple.com/library/mac/documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40010946-CH1-SW2
ダブルポインタ、ポインタのポインタ、などで検索すると出てきますが
関数実行後に戻り値(この場合はエラーメッセージ)を受け取るためです。
宣言時はNSError* error;でなにも入っていませんよね。
つけないで渡すと値渡しで一方通行になるのでアドレスを渡して
関数内で書き換えてもらうのです

id:Homma333

なるほど!理解出来ました!ありがとうございました。また機会がありましたらよろしくお願いします(・∀・)

2013/09/28 01:01:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません