• ベストアンサー

Objective-C 変数への代入エラー

お世話になっております。 xCodeでiOSの開発をしておりますが、 以下のコンパイルエラーが発生してしまい解決方法が分かりません。 初歩的多所だと思いますが、ご教授お願い申し上げます。 xxxx.m @interface ViewController(){ @public NSString *hoge; } 略 -(void)hoge{ *hoge = [NSString stringWithFormat:@"%d",999]; } コンパイルエラー Assigning to 'NSString' from incompatible type 'id'

質問者が選んだベストアンサー

  • ベストアンサー
noname#190876
noname#190876
回答No.2

ダメなところ。 1 @public 宣言は、ほとんど使わない 2 .m に  @interface XxxController (){ } などとかかない。 @interface () @end なら、高等テクニックでやるが 3 インスタンス変数で、メソッドと同じ名前を使わない。 4 インスタンス変数ではなく、できるだけ、@property をつかう。このとき、同名のメソッドは、アクセッサー 5 hogeが、NSStringオブジェクトへの紐をもつなら、   hoge= @"999"; 6 コンパイル時に結果が決まっているものを、[NSString stringWithFormat などとしない。  ということで、Objective-Cのテキスト的なものを読むことが必要でしょう。その際に、iOS4.x 以前のものは、ARC(Automatic Reference COunt)に対応していないので、価値ゼロです。また、iOS APIについては、 Storyboardの導入が、iOS5.0だったので、これ以前のものは、避けましょう。

RYO-88
質問者

お礼

ご回答ありがとうございます。 基本的なところがおさえられていなかったので、 今後もっと勉強したいと思います。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

なぜに *hoge?

RYO-88
質問者

お礼

ご回答ありがとうございます。 この場合もアドレス指定が必要かと思っておりました。

関連するQ&A