やっとこさ表示できました。
悪いのはNSDictionaryでもNSArrayでもなく
グローバル(?)変数の使い方でした。
プロパティと言うんですかね?
この辺の基礎知識を置いてきぼりにしてきてますが
そろそろしんどくなってきました。
基礎からしっかりやりましょうかね。
この本はこんなときのために買ってあったのです。
正直C言語もよくわかってない人間でも(私のこと)
アプリはリリースできてしまうのです。
でもやっぱりちゃんとした知識があった方が
今回のような初心者のようなミスはおこらないはず。。
今回のミス
グローバル変数の宣言?
そもそもこの言葉であっているのかわからないのですが、
当初は.hで下記だけ宣言して
1 2 3 |
@interface UIViewController1 : UIViewController { NSMutableArray* tableStructure_; } |
.mファイルでこのように使用してたのですが
1 |
tableStructure_ = [NSMutableArray arrayWithArray:[dic objectForKey:@"Table"]]; |
この”tableStructure_”をもとにいろんなメソッドで使用して
Tableを実装していました。
表示はうまくいって、問題ないと思っていたのですが
実際は、Tableをスクロールした場合に画面が固まってしまい、
思ったように実装出来ていませんでした。
一旦、plistの階層が浅いサンプルコードを見てみると
.hファイルでの宣言以外にも.mでの宣言や、書き方が違ってましたので、
それに習ってすべて書き直したらうまくいきました。
1 2 3 4 5 6 7 8 9 10 |
@interface UIViewController1 () @property (nonatomic, retain) NSMutableArray *tableStructure_; @end @implementation UIViewController1 @synthesize tableStructure_; //<中略> self.tableStructure_ = [NSMutableArray arrayWithArray:[dic objectForKey:@"Table"]]; //別メソッド return [[self.tableStructure_ objectAtIndex:section] objectForKey:@"Title"]; |
こんな感じ。
今回、この考え方がわかっていたらあと2日は早く終わらせることが出来てたので
今回のアプリが出来上がったら、パーフェクトマスターの
サンプルの部分ではなく,C言語の基礎的な部分をしっかり抑えたいと思います。
↓レビューを見ると、C言語わかっている人からしたら物足りないようですね。
私には逆にちょうどいいのかなぁってレビューを見て思いました。
詳解Objective-C をオヌヌメしますよー / 【plistとTableViewと基礎レン】アプリ開発日記(6/28) http://t.co/4EGsbZEfHN