0

これが基本的なObjectiveCの質問であることは知っていますが、深刻な問題があります。connectionDidFinishLoadingに値を入力するNSMutable配列があります。NSLogで、値が正しく割り当てられていることがわかります。しかし、DidSelectRowでこれらの値をフェッチしようとすると(テーブルビューを使用しているため、BAD_ACESSエラーが発生します)

これが私のコードです:

@implementation MainMap
{

    NSMutableArray *condition ;
}
..
- (void)viewDidLoad
{
    [super viewDidLoad];
}
...
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
condition= [NSMutableArray array];
..adding objects..
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    //app crashes in here
NSLog(@"Condition of pressed item is %@",[condition objectAtIndex:indexPath.row]);
}

condition= [NSMutableArray array];ViewDidLoadの内側に配置する と、が得られますSIGBART

さらに、宣言を.hファイルに配置し、それをプロパティとして使用してから、.mで合成しようとしましたが、それでも何も起こりません。多分私は何かが足りないので、それを修正できますか?

4

1 に答える 1

2

[NSMutableArray new]代わりに試してみてください[NSMutableArray array]condition次に、dealloc-methodでリリースする必要があります。

それ以外の場合は、ARCを有効にすることができます(http://longweekendmobile.com/2011/09/07/objc-automatic-reference-counting-in-xcode-explained/)。ARCでは、参照カウントを自分で処理してはなりません。

于 2012-09-09T19:21:11.893 に答える