2017-03-08 4 views
0

EnumsHeader.h 파일에 Objective-C 열거 형을 만들고이를 <Module>-Bridging-Header.h#import "EnumsHeader.h"으로 가져 왔습니다. Swift 클래스 (ClassA.Swift)에서이 열거 형의 속성을 만들 수 있습니다. 내가 ClassB.m (목표 - C) 클래스에서이 속성을 참조 할 때, 나는 컴파일 오류를보고 있어요 : 여기 '를 ClassA *'Swift 클래스의 NS_ENUM 속성으로

내가 실종 어떤 유형의 객체를 찾을 수 없습니다 재산권 'optionsFromA'?

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 

답변

2

오브젝티브 C를 가지고 no 선택 값, 옵션 FromA를 다음과 같이 선언 할 수 있습니다.

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