Objective-cでtagプロパティを使う時のハマりどころ

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

めっきり朝と夜が寒くなってきたけど、昼間はまだまだ灼熱と感じる下駄です。

最近の言語ではめずらしく、オブジェクトにプロパティが埋め込めないObjective-C言語ですが、
唯一発見した任意のプロパティがtagっちゅうやつで、int値のみいれられるみたい。

あまり使いドコロないかな?と思ってたけど、今作ってるブックリーダーアプリでは、各ページにページ番号を埋め込むなど、結構便利に使ってしまった。

そこでハマったのは、int値だと思ってたけどどうやらtagプロパティはNSIntegerの型だったという事。
エラーは出ないが、warningは出てしまう。

本当に困ったのは、型変換をどうやっていいか分からなかったという事。

最初はintValueを使ってみたが、エラーが取れない。

試しに、NSLogで表示してみると、

NSLog(@”%d”,obj.tag);

これもwarningでちゃう。%fも%@も%%も全てwarning。そもそもこれってどう扱えばいいの?
と思ってたら、どうやら正解は、tag値を取り出すときに、intキャストするってことだけだったようだ。

int num = (int)obj.tag;

という風にすればいいだけだったようだ。

結論は簡単だが、やはり奥が深い言語だ・・・ていうか不親切すぎねか?

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です