목록object-c (5)
NewGen
* get top Viewcontroller guard let window = UIApplication.shared.keyWindow, let rootViewController = window.rootViewController else { print("get error") return } var topController = rootViewController while let newTopController = topController.presentedViewController { topController = newTopController } print("TOP=\(topController)") 의외로 많이 쓰임. 프로토콜로 전달하기 애매할때는, 탑 뷰컨트롤러 찾아서 바로 코드 실행해야 할때.. 백그라운드서..
Obj-c 클래스 생성 및 호출이용 클래스 선언 기본 @interface Custom_Class_Name : SuperClass_Name { //변수 } +(void)func1: (int)in_num; //+ c++에서 static -(void)func2 : (NSString*)in_str; //- : general class member func. @end * Header file #ifndef test_objc_h #define test_objc_h #import @interface testObjClass : NSObject { NSString* str1; //ARC mode on이므로 자동으로 메모리 관리가 들어감. NSString* str2; int nNum1; NSString* testStr1;..
* 비트연산, 대규모 행렬, 어레이 등등... swift로는 약간 모자른 로직을 구현하기 위해서 c++ 을 사용하거나, object-c를 이용해야 함. * Bit operations, large-scale matrices, arrays, etc... In order to implement the logic that is slightly insufficient in Swift, you must use c++ or use object-c. * 이미 c++로 구현을 하였다면 이를 swift에서 소스자체로 임포트 해서 빌드하여 사용하는법을 기술함. If it has already been implemented in C++, it describes how to import and build it from swif..
* Swift로 프로젝트를 생성해서 작업하다가, object-c 로 소스를 짜야 할때가 있슴. * 이때, object-c 소스를 임포트하고, 연결해서 Swift 소스에 붙여서 사용해야 함. 1) 파일추가를 해주고, 2) 새로 생성할 파일 종류는 헤더파일을 선택하고, 3) 브리징헤더파일명은 다음 규칙을 따라야 한다 : 프로젝트명-Bridging-Header.h 규칙으로 생성해주어야 함. 4) 생성된 헤더파일을 빌드세팅에 추가하여 컴파일시에 참조되도록 해야 함. 5) object-c 소스를 다음과 같이 추가를 해주고.. * 헤더파일 * m 파일 (c 로치면 소스 파일, .c or .cpp) 6) 브리징헤더에 추가한 object-c 파일의 소스의 헤더파일을 임포트 시켜준다. 7) 그리고 swift 소스에서 불..
이거는 h-Index 개념을 이해하는데 시간이 걸렸슴.. 내 머리가 일케 안돌아가나 하는걸 느꼈슴. 결국엔 매우 간단하다는걸 깨달음.. --; 주어진 배열을 내림차순 정렬시키고, 인덱스별로 인덱스 값과 배열값을 비교하다가 배열값이 인덱스번호 보다 작거나 같으면 해당 인덱스를 리턴하면 되는거였슴. 배열개수동안 루프 돌다가 주어진 위 조건에 만족을 못하는경우는 그냥, 배열개수를 리턴하면 되는거였슴. 근데 문제 설명이 ... ㅋ 제출코드는 아래와 같고... 소스파일 첨부는 아래에..