私のテーブルビューでは、次のことが起こっています(言い換えれば)
.h
@interface OptionsView : UIView <UITableViewDelegate, UITableViewDataSource>
@property (nonatomic, retain) NSArray *dataSource;
.m
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
...
self.dataSource = [NSArray arrayWithObjects:options, sections, sponsor, nil];
}
return self;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(self.dataSource) {
NSArray *ds = [self.dataSource objectAtIndex:indexPath.section];
NSDictionary *d = [ds objectAtIndex:indexPath.row];
ActionBlock a = [d objectForKey:ACTION]; // <-- Thread 1: EXC_BAD_ACCESS (code=2, address=0x802)
if(a != nil) a();
}
}
didSelectRowAtIndexPath
あなたは私が得ていることを見ることができますが、EXC_BAD_ACCESS
理由はわかりません。私はアークを使用しているので、ゾンビの問題ではありません(すでにチェックされています)。
ブレークポイントを使用すると、初期化された後に存在することがわかりますself.dataSource
が、後で必要になったときは存在しません。どちらとしても表示されません<nil>
。空白だけです。また、これはデバッグでは機能しますが、リリースでは機能しません。それはどういう意味ですか?
**スクリーンショットを追加して編集**
あなたはどちらも表示されないことに気付くでしょds
うd
..奇妙ですか?