1

私はiPhoneアプリの開発が初めてで、開発しようとしているアプリでこの問題に悩まされています。

テーブルビューを作成するためのデータコントローラーがあります。このチュートリアルを使用して作成しました: 2 番目の iOS アプリの作成について

JSON 応答から作成されたビューコントローラーの 1 つから配列を渡そうとしています。

配列を渡す必要がある私の viewcontroller.h からのコードを次に示します。

@interface ViewController : UIViewController

@property (nonatomic, retain) DataController *Data;
@property (nonatomic, retain) NSMutableArray *array;
@end

ビューコントローラー.m:

  #import "DataController.h"
    [Data setMasterList: self.array];

DataController.h:

@interface DataController : NSObject

@property (nonatomic, strong) NSMutableArray *masterList;

- (void)setMasterList:(NSMutableArray *)newList;
@end

DataController.m

#import "LoginViewController.h"

    - (void)setMasterList:(NSMutableArray *)newList {
          if (_masterList != newList) {
              _masterList = [newList mutableCopy];
          NSLog("List: %@", newList);


             }
          }

NSLog メッセージはコンソールに表示されず、配列はゼロです。

どんな助けでも大歓迎です。

ありがとう。

編集:

更新された viewcontroller.m は次のとおりです。

Data = [[DataController alloc] init];
[Data setMasterList: self.array];

datacontroller.m:

- (void)setMasterList:(NSMutableArray *)newList {
      if (_masterList != newList) {
          _masterList = [newList mutableCopy];
      NSLog("List: %@", self.masterList);


         }
}

- (NSUInteger)countOfList {
    NSLog("List: %@", self.masterList);
    return [self.masterList count];
}

setMasterList 内の最初の nslog は正しい配列値を返しますが、countOfList 内の 2 番目の nslog は null を返します。リストは、setMasterList の外部では常に null を返します。DataController の新しいインスタンスを作成しているためですか? もしそうなら、どうすれば配列をデータコントローラーに渡すことができますか。

4

1 に答える 1

2

最初のコメントのように、ティルが提案したように、Data呼び出す前に初期化する必要がありますsetMasterList。そのような:

Data = [[DataController alloc] init];
[Data setMasterList: self.array];
于 2013-05-18T05:49:54.150 に答える