我将类别 ID 传递给下一个视图控制器。
NSNumber *childCategoryId = [[NSNumber alloc] initWithInt:category.id];
if ([destination respondsToSelector:@selector(setCategoryId:)]) {
[destination setValue:childCategoryId forKey:@"categoryId"];
}
在下一个视图控制器中,接受数据的属性被声明为弱
@property (weak, nonatomic) NSNumber *categoryId;
在viewDidLoad下,我使用id从互联网获取数据。当 NSNumber 不太大(<15)时,它可以正常工作。因此,代码能够在许多类别上工作,除了那些id >=15的类别
可以通过将弱引用更改为强引用来解决该问题,这样 categoryId 就会一直保留到下一个控制器需要的时间。我相信这个问题是由弱属性的损失引起的,但我不明白它的原因。