gpt4 book ai didi

ios - 类属性在初始化后是否可访问并在回调方法中可用

转载 作者:行者123 更新时间:2023-11-28 20:16:53 26 4
gpt4 key购买 nike

也许是一种复杂的措辞方式。

应该发生的过程:

  1. FirstViewController 加载
  2. 您单击一个按钮,该按钮显示一个带有部分 curl
  3. 的新 View
  4. 您选择一个 UITableCell
  5. 您在 FirstViewController 中为已单击的任何单元格设置一个属性
  6. FirstViewController 的回调方法中,您可以访问该属性以确定下一阶段的执行。

但是,当设置属性并尝试检索它时,它返回为 NULL。这是我尝试设置它的方式:

FirstViewController.h:

@interface FirstViewController : UIViewController
{
NSString *navOption;
}
@property(nonatomic, retain) NSString *navOption;

FirstViewController.m(回调):

@synthesize navOption;

-(void)callBackForNav{
NSLog(@"Inside callback: %@", navOption);
}

SecondViewController 中:

FirstViewController *dw = [[FirstViewController alloc] 
initWithNibName:nil bundle:nil];
dw.navOption = @"Filter Results";

我希望在回调 navOption 中等于 Filter Results,但它输出为 NULL。我哪里出错了?

最佳答案

如果我没理解错的话,您会看到 FirstViewController,然后是 SecondViewController。我在代码中分配 navOption 时看到的问题是 SecondViewController 创建了一个新的 FirstViewController,而不是引用旧的。因此,当您弹出堆栈并返回到原始 FirstViewController 时,数据并未设置在其上,因为它是一个不同的实例。

现在我看到你正在尝试对类属性做一些事情,但我不确定这是否是正确的方法,你应该专注于获取对原始 View Controller 的引用并在那里设置属性。

如果你真的想要一个类“属性”,你必须这样做。

// MyClass.h
@interface MyClass {
}

+(NSObject*) theObject;

// MyClass.m
+(NSObject*) theObject
{
static NSObject* staticObject = nil;

if (staticObject == nil)
{
// create object
}

return staticObject;
}

关于ios - 类属性在初始化后是否可访问并在回调方法中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17746666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com