簡體   English   中英

Swift類中的NS_ENUM作為屬性

[英]NS_ENUM in Swift class as a property

我已在EnumsHeader.h文件中創建了一個Objective-C枚舉,並將其導入到<Module>-Bridging-Header.h #import "EnumsHeader.h" 我可以在Swift類( ClassA.Swift )中創建此枚舉類型的屬性。 當我從ClassB.m (Objective-C)類引用此屬性時,我看到編譯錯誤: 在類型'ClassA *'的對象上找不到屬性'optionsFromA'

我在這里想念什么嗎?

枚舉頭

#ifndef EnumsHeader_h
#define EnumsHeader_h

#import <Foundation/Foundation.h>

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

#endif

SWA類

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

班級

#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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM