みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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'

投稿日時 - 2013-10-02 08:06:35

QNo.8288253

すぐに回答ほしいです

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

ダメなところ。

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だったので、これ以前のものは、避けましょう。

投稿日時 - 2013-10-12 18:08:39

お礼

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

投稿日時 - 2013-10-17 12:14:42

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

なぜに *hoge?

投稿日時 - 2013-10-07 02:32:55

お礼

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

投稿日時 - 2013-10-17 12:16:37

あなたにオススメの質問