gpt4 book ai didi

objective-c - 在带有协议(protocol)和委托(delegate)的 viewDidLoad 之后,字符串变为 nil

转载 作者:行者123 更新时间:2023-11-29 13:25:10 24 4
gpt4 key购买 nike

我有一个协议(protocol)和委托(delegate),我让它发送一个字符串,然后更改 UItabbar 上的选项卡,我的协议(protocol)和委托(delegate)工作只是找到并在 View Controller 中设置一个字符串,但是一旦 View 完成加载,它就变成了 nil这是我的代码;

-(void)duplicateAsset:(NSString *)serialNumber{

[self setDubString:serialNumber];
NSLog(@"delegate called DubString = %@",self.dubString);

}
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"_dubString in viewDidLoad = %@",self.dubString);
}

输出

 delegate called DubString = SERIALNUMBER
_dubString in viewDidLoad = (null)

我不确定发生了什么,因为我以前做过很多次。

编辑:我更新了日志中的内容。我已将字符串属性设置为 copystrong 但我仍然无法保留字符串

最佳答案

在显示的代码中,您实际上并未将 dubString 作为 NSLog 的参数,这是您使用的实际代码吗?如果是,那就是问题所在,在NSLog的结束)前添加, self.dubString。如果不是,则检查 dubString 属性是否设置为 strongcopy(或者,如果它不是属性,则您的 setDubString: 方法获取字符串或其副本的所有权)。

edit:显示的代码似乎没有任何问题,所以如果您无法跟踪错误,请发布更多代码(例如,设置了 dubString 的所有上下文,例如作为调用 duplicateAsset 的地方。

与此同时,我建议检查您是否正在调用 viewDidLoad 的同一对象上调用 duplicateAsset(包括 self 的对象 ID在两个调试打印输出中)。还要确保没有其他设置 dubString ,例如,自己定义 setDubString: 访问器并在那里添加调试打印输出(或断点)。

关于objective-c - 在带有协议(protocol)和委托(delegate)的 viewDidLoad 之后,字符串变为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13312819/

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