Ich habe einen Objective-C Enum in EnumsHeader.h
Datei erstellt und importiert, dass in <Module>-Bridging-Header.h
#import "EnumsHeader.h"
. Ich kann eine Eigenschaft dieses Aufzählungstyps in einer Swift-Klasse erstellen (ClassA.Swift
). Wenn ich auf diese Eigenschaft von ClassB.m
(Objective-C) Klasse beziehen, ich sehe Kompilierungsfehler: Property ‚optionsFromA‘ gefunden, nicht auf Objekt vom TypNS_ENUM in Swift Klasse als Eigenschaft
‚KlasseA *‘ Bin ich etwas fehlt hier?
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