2013年5月21日火曜日

[解決][iOS]SIGABRTエラー__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty arrayというかいぶつくん(2)

以前もこのエラーがでてきて、そのときは違う対処法で対応できたんですが、今回はまた別の対処法をしてます。


Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: 
index 0 beyond bounds for empty array'

そうです、エラーは全く一緒です。
しかし、今回は、cellやtableViewのエラーではなく、NSMutableArrayにものをいれてくときに起きたエラーです。

NSMutableArray *duration = [NSMutableArray array]; //NSMutableArrayを宣言
[duration addObject:@0]; //addObjectでいれてくだけの簡単なお仕事のはずが、このエラーが起きました。

対処法。
どうやら、このページのgifの顔が動く怖いおじさんが説明してくれてます。

"IBOutletで使ってみるといいよ"

さっそく。

.hファイル
@property (strong, nonatomic) IBOutlet NSMutableArray *duration;

.mファイル
NSMutableArray *duration = [NSMutableArray array]; //NSMutableArrayを宣言
[duration addObject:@0]; 


いった!顔が動くおじさんありがとう!

追記
確かにこのときはいったんですが、最終的にはjsonで通信して、返ってくるレスポンスが遅くて、
NSTimerでコントロールできず、うまくarrayに入れずダダダッとなったのが原因でした。
ほんとうにありg(ry


一応前回のエラーはこちら
[解決][iOS]SIGABRTエラー__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array