【問題】
iOSアプリ作ろうとしてる。iOSの教科書を見てしこしこやってる。言われた通りにやってると思うんだけど、
Use undelclared identifier 'display'; did you mean '_display'?
てエラーが出る。これ↓
えー、言われた通りにやってるyo-。
証拠これ↓「iOSの教科書」より抜粋
ね。
【解決】
なんか納得いかねぇけど、当該部分を、エラーメッセージのご助言通りに、
- (IBAction)add { count = count + 1; // display じゃなくて _display _display.text = [NSString stringWithFormat:@"%d", count]; }
で、ビルドしたら正常に動作した
【調査】
iOSの教科書のコードでは display でアクセスできるみたいな感じで書いてあったのに何でなん(´・ω・`)、と思って調べた
ググりワード
- use of undeclared identifier
- xcode 4.6 アンダースコア
- Objective-C アンダースコア インスタンス
Hit
- Xcodeで超簡単なWebViewアプリつくる【Xcode4.2.1】【WebView】【Obj-C】【iPhone】(俺のじゃんw)
- 「よくわかるiPhoneアプリ開発の教科書」サポートサイト - マイナビ
- Objective-C - おなかすいたWiki!
これか
- 変数ごとにいちいちアクセッサかいてたら面倒なので、@propertyという仕組みが用意されている。
- Objective-C 2.0から@propertyや@synthesizeが導入された。
- プロパティを宣言すれば、アクセサメソッドとインスタンス変数が自動的に生成される
- 特に指定しなければ、合成されるインスタンス変数の名前は、プロパティ名の先頭にアンダースコアを置いたものになる
なるほど。
前述、「iOSの教科書」には
[注釈] 本書では、OS X 10.7 (OS X Lion)または、OS X 10.8 (OS X Mountain Lion)がインストールされたMacを使って開発を行う。Mac OS X 10.6 (Snow Leopard)がインストールされたMacの場合は、一部の手順が異なることがある。また、一部の機能が利用できないため、15章のサンプル・コードは動作しない。
とある。ちなみに僕のPCは、
OS X 10.8.2
Moutain Lionじゃないんスか。これでLeopardとかだったら納得できたんだけど。ワカンネ。Objective-Cのバージョンってどうやって調べんの。
【結論】
とりあえず
Use of undeclared identifierのエラーが出たときは以下のことを疑うべし
【雑感】
最近、無力感ぱねぇw
ダメ人間臭ぱねぇw
DRYな備忘録として
絶対に挫折しない iPhoneアプリ開発「超」入門 増補改訂第5版 【Swift 3 & iOS 10.1以降】 完全対応 (Informatics&IDEA)
- 作者: 高橋京介
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/11/30
- メディア: 単行本
- この商品を含むブログを見る
Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)
- 作者: 石川洋資,西山勇世
- 出版社/メーカー: 技術評論社
- 発売日: 2017/02/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る