gpt4 book ai didi

objective-c - Swift 类中的 NS_ENUM 作为属性

转载 作者:行者123 更新时间:2023-11-28 12:28:50 27 4
gpt4 key购买 nike

我在 EnumsHeader.h 中创建了一个 Objective-C 枚举文件并将其导入 <Module>-Bridging-Header.h #import "EnumsHeader.h" .我能够在 Swift 类 ( ClassA.Swift ) 中创建此枚举类型的属性。当我从 ClassB.m 引用此属性时(Objective-C) 类,我看到编译错误:Property 'optionsFromA' not found on object of type 'ClassA *'

我在这里遗漏了什么吗?

EnumsHeader.h

#ifndef EnumsHeader_h
#define EnumsHeader_h

#import <Foundation/Foundation.h>

typedef NS_ENUM(NSInteger, EnumOption) {
EnumOptionA,
EnumOptionB,
EnumOptionC
};

#endif

ClassA.swift

public class ClassA: NSObject {
public var optionsFromA: EnumOption!
}

ClassB.m

#import <Foundation/Foundation.h>
#import "TestEnumsInterop-Swift.h"

@class ClassB;

@interface ClassB:NSObject

@end

@implementation ClassB

- (instancetype)init {
if (self = [super init]) {

ClassA *a = [ClassA new];
a.optionsFromA = EnumOptionA; //<--- Property 'optionsFromA' not found on object of type 'ClassA *'

}
return self;
}

@end

最佳答案

Objective-C 没有可选值,您可以将 optionsFromA 声明为:

public class ClassA: NSObject {
public var optionsFromA: EnumOption = .A
}

关于objective-c - Swift 类中的 NS_ENUM 作为属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42662951/

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