私は何日もこれに固執していて、それに戻るたびに、私は自分のコードをますます混乱させ続けています、笑。これが私がやろうとしていることです。料金の表リストがあります。1つをタップすると、料金の詳細が記載されたモデルビューが表示されます。これで、モデルが提示されると、ユーザーのXMLリストをフェッチして解析し、カスタムデリゲートを介してNSMutableArrayを返すオブジェクトが作成されます。次に、ポップオーバービューが呼び出されたときに、ポップオーバービューへのinitWithArray呼び出しでユーザー配列が使用されるときに、ピッカーポップオーバーを表示するボタンがあります。配列内のデータが正しいことはわかっていますが、[pickerUsers count]が呼び出されると、EXC_BAD_ACCESSが取得されます。私はそれが記憶/所有権の問題だと思いますが、何も役に立たないようです。どんな助けでもいただければ幸いです。
関連するコードスニペット:
チャージポップオーバー(チャージ詳細モデルビュー):
@interface ChargePopoverViewController .....
NSMutableArray *pickerUserList;
@property (nonatomic, retain) NSMutableArray *pickerUserList;
@implementation ChargePopoverViewController
@synthesize whoOwesPickerButton, pickerUserList;
- (void)viewDidLoad {
JEHWebAPIPickerUsers *fetcher = [[JEHWebAPIPickerUsers alloc] init];
fetcher.delegate = self;
[fetcher fetchUsers];
}
-(void) JEHWebAPIFetchedUsers:(NSMutableArray *)theData {
[pickerUserList release];
pickerUserList = theData;
}
- (void) pickWhoPaid: (id) sender {
UserPickerViewController* content = [[UserPickerViewController alloc] initWithArray:pickerUserList];
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:content];
[popover presentPopoverFromRect:whoPaidPickerButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
content.delegate = self;
}
ユーザーピッカービューコントローラー
@interface UserPickerViewController .....
NSMutableArray *pickerUsers;
@property(nonatomic, retain) NSMutableArray *pickerUsers;
@implementation UserPickerViewController
@synthesize pickerUsers;
-(UserPickerViewController*) initWithArray:(NSMutableArray *)theUsers {
self = [super init];
if ( self ) {
self.pickerUsers = theUsers;
}
return self;
}
- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {
// Dies Here EXC_BAD_ACCESS, but NSLog(@"The content of array is%@",pickerUsers); shows correct array data
return [pickerUsers count];
}
役立つ場合は、追加のコードを提供できます。前もって感謝します。