gpt4 book ai didi

objective-c - 如何从 int* 转换为 NSNumber*

转载 作者:行者123 更新时间:2023-12-04 02:58:11 25 4
gpt4 key购买 nike

我有以下代码。它编译,但崩溃。我做错了什么?

- (void)start: (int*)shouldPause
{
NSNumber * oShouldPause = (NSNumber *)shouldPause;
[self performSelectorInBackground:@selector(runThread:) withObject: oShouldPause];
}

而函数runThread是

- (void)runThread: (NSNumber*) shouldPause

一般来说,我想在线程外部和线程内部设置一些整数,以根据这个整数改变行为。

感谢您的帮助!

最佳答案

NSNumber * oShouldPause = @(*shouldPause);

你所做的是一个常见的错误。 NSNumber 是一个对象,而 int 是一个原始类型。您将指向原始类型的指针转​​换为指向对象的指针。编译器允许这样做,因为它们都只是指针。此外,代码需要一个对象,试图发送消息和繁荣。出了点问题。

您很可能不需要 int* 作为参数。只需 int。因此,您需要按如下方式创建 number 对象,而无需取消引用:

NSNumber * oShouldPause = @(shouldPause);

关于objective-c - 如何从 int* 转换为 NSNumber*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51751677/

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