2016-06-22 6 views
0

내 프로젝트 중 하나에서 Objective C 클래스의 Swift 클래스를 사용하고 싶습니다. XXX-swift.h 파일과 브리징 헤더 파일을 만들었습니다. 대부분의 신속한 파일은 완벽하게 작동하지만 APiResult 클래스의 문제점을 발견했습니다. Objc 프로젝트에서 swift 클래스 사용

@objc class ApiResult:NSObject { 
var success:Bool? 
var message:String? 
} 

와 XXX-swift.h 파일

SWIFT_CLASS("_TtC16RemoteController9ApiResult") 
@interface ApiResult : NSObject 
@property (nonatomic, copy) NSString * _Nullable message; 
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; 
@end 

거기 success 특성이 없습니다. 다시 빌드 & 클린 빌드가 작동하지 않았습니다.

왜 이런 일이 발생합니까?

답변

3

Objective-C는 옵션을 지원하지 않습니다. Swift에서 Objective-C 로의 연결은 클래스 유형에 대한 옵션을 허용합니다. 이는 ObjC 측에서 nil으로 변환되기 때문입니다. 그러나 Bool은 원시 유형이며 Objective-C에는 nil 부울 값과 같은 것이 없습니다.

+0

감사합니다. 내 문제를 완벽하게 처리했습니다. – Castiel

관련 문제