gpt4 book ai didi

objective-c - -[_SwiftValue unsignedIntegerValue] 崩溃

转载 作者:搜寻专家 更新时间:2023-11-01 06:32:14 24 4
gpt4 key购买 nike

我在 Objective-C 上有这个方法:

- (id)userInfoForSelectedIndex {
if(selectedIndex < self.buttons.count)
return self.buttons[selectedIndex].userInfo;
else
return nil;
}

.userInfo 应该是一个 MyEnum 值

typedef NS_ENUM(NSUInteger, MyEnum) {
ValueA = 0,
ValueB
};

当我尝试运行时应用程序崩溃了(Objective-C 代码):

- (SomeEnum)activeFilter {
return [[MyClass userInfoForSelectedIndex] unsignedIntegerValue];
}

控制台输出如下:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_SwiftValue unsignedIntegerValue]: unrecognized selector sent to instance 0x60800025ac10'

有什么导致崩溃的建议吗?

最佳答案

Enum 是由一些 Swift 函数提供的。

问题是在 swift - obj-c 互操作期间类型错误。我在 swift 函数上使用 rawValue 而不是枚举本身解决了这个问题。

当代码在 Obj-C 上运行时,它将使用该值作为 UInt 而不是一些错误的快速值类型,这是由于将 EnumType (MyEnum) 转换为 userInfoForSelectedIndex< 上的 id 返回类型而导致的/strong>.

关于objective-c - -[_SwiftValue unsignedIntegerValue] 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45555732/

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