0

私はオブジェクトを持っています

@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.nextQuestionquestion.previousQuestionですnil

このオブジェクトを渡すと、後続のオブジェクト (nextQuestion と previousQuestion) が nil になるのはなぜですか? オブジェクトが深いコピーではなく浅いコピーを行っているようですが、確かではありません。

私が知らない根本的な何かがあるようです。

4

2 に答える 2