私はオブジェクトを持っています
@interface QuestionViewModel : NSObject
@property (nonatomic, assign) NSInteger questionId;
@property (nonatomic, strong) NSString *questionText;
@property (nonatomic, assign) NSInteger questionNumber;
@property (nonatomic, strong) NSArray *choices;
@property (nonatomic, strong) QuestionViewModel *nextQuestion;
@property (nonatomic, strong) QuestionViewModel *previousQuestion;
@end
このオブジェクトにデータを入力すると、それが成功し、すべてのプロパティが完全かつ正しく初期化されることがわかります。
ただし、このオブジェクトを次のように渡すと:
*これは別のクラスです (上記で定義した NSObject にはありません)。
@property (nonatomic, strong) QuestionViewModel *currentQuestion;
- (void)nextQuestion
{
[self loadQuestion:self.currentQuestion.nextQuestion];
}
- (void)loadQuestion:(QuestionViewModel *)question
{
self.currentQuestion = question;
.
.
.
}
question.nextQuestion
とquestion.previousQuestion
ですnil
。
このオブジェクトを渡すと、後続のオブジェクト (nextQuestion と previousQuestion) が nil になるのはなぜですか? オブジェクトが深いコピーではなく浅いコピーを行っているようですが、確かではありません。
私が知らない根本的な何かがあるようです。