0
  BookingDocumentsViewController *bdVc = [self.storyboard instantiateViewControllerWithIdentifier:@"BookingDocs"];
    bdVc.orId = rl_id;
    bdVc.docsArray =  self.documentsArray;
    [self.navigationController pushViewController:bdVc animated:YES];

上記のコードスニペットがあります。新しいビューコントローラをロードし、その可変配列(docsArray)オブジェクトを現在のビューの可変配列に割り当てようとしています(documentsArray <=これはnilではありません)

上記のコードを実行するたびに、EXC_BAD_ACCESSエラーが発生します。

しかし、3行目をコメントすると。動作しますが、アレイを新しいビューに移動できません。私もこれで試してみましたが[[NSMutableArray alloc] initWithArray:self.documentsArray];、うまくいきません。

しかし、それを使用するbdVc.docsArray =[[[NSMutableArray alloc] init];と機能しますが、可変配列を新しいビューに戻すことができません。

編集:ただし、2行目にはNSString値があります。そして、それらは問題なく通過することができます。

私はここで何が間違っているのですか?

コンソールでエラーが発生していませんが、代わりにこれが発生します。

ここに画像の説明を入力してください

4

3 に答える 3

2

たぶん、セグエの使用を検討してください。宛先のビューコントローラをインスタンス化します。次に、ソースビューコントローラで実装します

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

宛先のビューコントローラーへの参照を取得し、そのデータを設定します。

BookingDocumentsViewController *bdVc = [segue destinationViewController];
bdVc.docsArray = self.documentsArray;
于 2012-11-12T12:15:51.790 に答える
0

BookingDocumentsViewController.hで

@property(nonatomic, retain)NSmutableArray *docsArray;

BookingDocumentsViewController.mで実行できます。

@synthesize docsArray;

- (void)viewDidLoad
 {
    NSmutableArray *array = [NSmutableArray alloc]initWithArray:docsArray];   
   [super viewDidLoad];
 }

次に、ビューをプッシュしているとき

BookingDocumentsViewController *bdVc = [self.storyboard instantiateViewControllerWithIdentifier:@"BookingDocs"];
bdVc.orId = rl_id;
bdVc.docsArray =  self.documentsArray;
[self.navigationController pushViewController:bdVc animated:YES];
[bdVc Release];
于 2012-11-12T12:02:54.090 に答える
0

私は問題を見つけたと思います。非常に基本的な間違い。bdVcのviewDidLoadには、次の行があります。

NSLog(@"Booking Documents viewDidLoad : %@",self.docsArray.count);

これがエラーの原因でした。%dの代わりにその%@。xcodeがエラーの適切な理由を示さなかったのはなぜだろうか。

助けてくれてありがとう。:)

于 2012-11-12T12:27:35.803 に答える