0

我的一个视图控制器中有一个属性。我在另一个视图控制器中设置值,如下所示:

iDBArticleViewController *ArticleViewController;

if (ArticleViewController == nil)
{
    ArticleViewController = [[iDBArticleViewController alloc] init];
}


ArticleViewController.bannerIsVisible = [NSNumber numberWithInt:0];

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
[ArticleViewController layoutForInterfaceOrientation:orientation];

当调用 layoutForInterfaceController: 方法时,调试控制台打印出 0,就像我为 iDBArticleViewController 设置属性一样。当我在另一个地方再次调用相同的方法时,调试控制台会打印出属性bannerIsVisible 为nil。问题可能是因为我在代码中的另一个位置调用该方法而没有再次设置属性?我希望该属性不会设置为零。房产不应该保值吗?我像这样初始化属性:@property (nonatomic, strong) NSNumber *bannerIsVisible;

4

1 回答 1

1

“当我在另一个地方再次调用相同的方法时,调试控制台会打印出属性 bannerIsVisible 为 nil。”

如果您在其他类中使用相同的代码调用相同的方法,那么您可能正在创建 ArticleViewController 的新实例,并且它的 bannerIsVisible 将为 nil。

如果您想在整个过程中使用相同的实例及其值,您可以选择共享实例/单例类。

于 2012-11-25T04:19:54.633 回答