私は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 の新しいインスタンスを作成しているためですか? もしそうなら、どうすれば配列をデータコントローラーに渡すことができますか。