Notice
Recent Posts
Recent Comments
Link
투케이2K
200. (swift5/xcode) Swift 소스 코드에서 Objective-C (Objc) 코드 호출 및 사용 방법 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT5
[방법 설명]
[ObjC.h : 소스 코드]
#ifndef ObjC_h
#define ObjC_h
#import <Foundation/Foundation.h>
#import <Foundation/Foundation.h>
@interface ObjC : NSObject
// -----------------------------------------------------------------------------------------
// MARK: - [objc try catch] : [헤더 브릿지 파일에 추가 필요] : #import "ObjC.h"
// -----------------------------------------------------------------------------------------
/*
// [사용 주의 점] : Objc Catch 부분을 감지 하기 위해서는 [NS] 사용 필요 (ex : NSArray)
do {
try ObjC.catchException {
let data : NSArray = []
let value = data[5]
print("value - \(value)")
}
}
catch {
print("Exception : \(error)")
}
*/
// -----------------------------------------------------------------------------------------
+ (BOOL)catchException:(void(^)(void))tryBlock error:(__autoreleasing NSError **)error;
// -----------------------------------------------------------------------------------------
@end
#endif /* ObjC_h */
[ObjC.m : 소스 코드]
#import <Foundation/Foundation.h>
#import "ObjC.h"
@implementation ObjC
// ---------------------------------------------------------------------
//*
+ (BOOL)catchException:(void(^)(void))tryBlock error:(__autoreleasing NSError **)error {
@try {
tryBlock();
return YES;
}
@catch (NSException *exception) {
*error = [[NSError alloc] initWithDomain:exception.name code:0 userInfo:exception.userInfo];
return NO;
}
}
// */
// ---------------------------------------------------------------------
@end
[swiftProject_Bridging_Header : 소스 코드]
// -----------------------------------------
#ifndef swiftProject_Bridging_Header_h
#define swiftProject_Bridging_Header_h
// -----------------------------------------
// [objc try catch]
#import "ObjC.h"
// -----------------------------------------
#endif /* swiftProject_Bridging_Header_h */
반응형
'Swift' 카테고리의 다른 글
Comments