初歩的な質問ですみません。
2点質問がございます。
I/F:iphone(Xcode)
言語:Object-C
1)デファインについて
#define MAX_NUM 30
#define FRIEND_TIMELINE_URL2 @"http://%@:%@@twitter.com/statuses/friends_timeline.json?count=MAX_NUM"
上記のようにツイッターAPIを使用してデータを取り出そうとしたのですが、
countオプションの値にデファインを使用しても無視されます。
数字をべたにいれると認識されます。
この原因についてわかるようでしたら、教えてください。
メンテナンスのことを考えて最大数はデファインで持ちたく。。。
よい回避策があればいいのですが。。
2)関数コールについて
さらに初心者的な質問ですが、
当方はC言語の知識しかないのですが、Object-Cでの関数コールの仕方について教えてください。
漠然とした質問ですみません。
このあたりがわかる参考になるサイトとかでも教えていただけると助かります。
Object-C 初心者な質問
Re:Object-C 初心者な質問
あくまで経験者レベルです。
時間がないのでざっくりと・・・
1について
宣言している部分は正しいですか?
又、C言語と組み合わせる場合は拡張子を変えなければいけないことがあるのですが拡張子は何になってます
か?
バックアップを取ってそのソースを.mmにしてみて下さい。
2について
[self 関数名];
これで関数を呼べるかと・・・。
時間がないのでざっくりと・・・
1について
宣言している部分は正しいですか?
又、C言語と組み合わせる場合は拡張子を変えなければいけないことがあるのですが拡張子は何になってます
か?
バックアップを取ってそのソースを.mmにしてみて下さい。
2について
[self 関数名];
これで関数を呼べるかと・・・。
Re:Object-C 初心者な質問
define の置き換えはトークンと呼ばれる単位で置換していくのですけど、文字列リテラルというのは1つのトークンとして認識されるため、MAX_NUM が 30 に置換されることはありません。
少し回りくどいマクロを書けば文字列にすることも可能ですが、以下のような関数を使うようにしてもいいのではないでしょうか。
少し回りくどいマクロを書けば文字列にすることも可能ですが、以下のような関数を使うようにしてもいいのではないでしょうか。
#define MAX_NUM 30 #define FRIEND_TIMELINE_URL2 @"http://%@:%@@twitter.com/statuses/friends_timeline.json?count=%d" NSString* make_friend_timeline_url2(NSString* user, NSString* pass) { return [NSString stringWithFormat: FRIEND_TIMELINE_URL2, user, pass, MAX_NUM]; }
Re:Object-C 初心者な質問
あ~ごめんなさい
よくソースを見てませんでした。
countオプションの値にデファインを使用しても無視されます。
と書いてあったのでってきり変数に値を入れているのかと・・・
よくソースを見てませんでした。
countオプションの値にデファインを使用しても無視されます。
と書いてあったのでってきり変数に値を入れているのかと・・・
Re:Object-C 初心者な質問
Objective-Cですね。
>2)関数コールについて
関数は基本的に XXXXX(A, B, C)のように C言語と同じですよ。
ex) NSLog(@"hoge");
>2)関数コールについて
関数は基本的に XXXXX(A, B, C)のように C言語と同じですよ。
ex) NSLog(@"hoge");
Re:Object-C 初心者な質問
みなさん回答ありがとうございます。
質問1に関しては理解いたしました。
質問2に関してですが、
下記例のソースで
Justyさんの回答を表すと、
- (IBAction)myAction1:(id)sender {
make_friend_timeline_url2(A,B);
}
蓮さんの回答を表すと
- (IBAction)myAction1:(id)sender {
[self make_friend_timeline_url2(A,B)];
}
どちらが正解でしょうか。
もうしわございません、もう少し教えてください。
質問1に関しては理解いたしました。
質問2に関してですが、
下記例のソースで
Justyさんの回答を表すと、
- (IBAction)myAction1:(id)sender {
make_friend_timeline_url2(A,B);
}
蓮さんの回答を表すと
- (IBAction)myAction1:(id)sender {
[self make_friend_timeline_url2(A,B)];
}
どちらが正解でしょうか。
もうしわございません、もう少し教えてください。
Re:Object-C 初心者な質問
宣言の仕方によります。
試してみたのでしょうか?
objective-cで引数を使う場合
[self make_friend_timeline_url2(A,B)];
↓
[self make_friend_timeline_url2 XXX:A YYY:B];
みたいな感じかと・・・
試してみたのでしょうか?
objective-cで引数を使う場合
[self make_friend_timeline_url2(A,B)];
↓
[self make_friend_timeline_url2 XXX:A YYY:B];
みたいな感じかと・・・
Re:Object-C 初心者な質問
>どちらが正解でしょうか。
試してみればわかるはずです。
ちなみに
[color=#d0d0ff" face="monospace][self make_friend_timeline_url2(A,B)];[/color]
この形式はオブジェクトメソッドの呼び出し、メッセージ式です。
Objective-C 2.0プログラミング言語: オブジェクトメッセージング
http://developer.apple.com/jp/Documenta ... CH11-85945
めるぽんさんの make_friend_timeline_url2はC関数として実装されていますので……(略)
>このあたりがわかる参考になるサイトとかでも教えていただけると助かります
Apple : Objective-C 2.0プログラミング言語
http://developer.apple.com/jp/Documenta ... mentID_117
Objective-C入門
http://wisdom.sakura.ne.jp/programming/objc/index.html
Cocoaの素、Objective-Cを知ろう - @IT
http://www.atmarkit.co.jp/fcoding/index/objc.html
あたりでしょうか。
書籍の方は私は
Amazon.co.jp: 詳解 Objective-C 2.0: 荻原 剛志: 本
http://www.amazon.co.jp/dp/4797346809
を持っていますけど、あんまり初心者向けじゃないですよね。
今 iPhone/Objective-C関連の書籍はたくさん出ていますので、一度大きめの書店にでも行って
自分に合ったものを探してみた方がいいかもしれません。
試してみればわかるはずです。
ちなみに
[color=#d0d0ff" face="monospace][self make_friend_timeline_url2(A,B)];[/color]
この形式はオブジェクトメソッドの呼び出し、メッセージ式です。
Objective-C 2.0プログラミング言語: オブジェクトメッセージング
http://developer.apple.com/jp/Documenta ... CH11-85945
めるぽんさんの make_friend_timeline_url2はC関数として実装されていますので……(略)
>このあたりがわかる参考になるサイトとかでも教えていただけると助かります
Apple : Objective-C 2.0プログラミング言語
http://developer.apple.com/jp/Documenta ... mentID_117
Objective-C入門
http://wisdom.sakura.ne.jp/programming/objc/index.html
Cocoaの素、Objective-Cを知ろう - @IT
http://www.atmarkit.co.jp/fcoding/index/objc.html
あたりでしょうか。
書籍の方は私は
Amazon.co.jp: 詳解 Objective-C 2.0: 荻原 剛志: 本
http://www.amazon.co.jp/dp/4797346809
を持っていますけど、あんまり初心者向けじゃないですよね。
今 iPhone/Objective-C関連の書籍はたくさん出ていますので、一度大きめの書店にでも行って
自分に合ったものを探してみた方がいいかもしれません。