Objective-C
-
Swift에서는 왜 Import 헤더를 하지 않아도 되는 것일까?앱등이에게 살충제를 뿌린다./고무망치를 도와라 2016. 12. 28. 16:39
Objective-C에서는 다른 클래스를 사용하기 위해서 import "AnotherClass.h"와 같은 헤더를 참조시켜야 했다.하지만 Swift에서는 import문을 사용하지 않고 다른클래스를 자유롭게 사용할 수 있다. 이유가 뭘까? Swift에서는 프로젝트 전체가 네임스페이스의 범위로 지정되기 때문이다.또는컴파일러가 알아서 해주기 때문이다..라고 이해해도 될 듯 하다. 출처 : https://teamtreehouse.com/community/hi-i-wanted-to-know-how-come-we-dont-need-to-import-the-factbookswift-at-the-top-of-the-viewcontroller-thanks
-
UIBarButtonItem을 만들어보자앱등이에게 살충제를 뿌린다./일기는 일기장에 2016. 8. 6. 20:19
UIBarButtonItem은 UIToolbar, UINavigationBar 등의 메뉴에 사용된다. 사용은 아래와 같다. (결과참조:http://rhammer.tistory.com/173) 여기에 포스팅할 내용은 이 UIBarButtonItem을 만드는 방법에 관한 것이다. 1. 시스템에서 제공하는 item 위 예제를 참조하세요! 2. 이미지만 갖고 만드는 item 3. 타이틀만 갖고 만드는 item 4. 커스텀 UIView를 갖고 만드는 item 사실 이 4번이 핵심이다. 1,2,3 번은 쉬운데 4번은 생각보다 까다롭다. 4번은 아래의 메소드를 사용해야 한다.DeclarationSWIFT convenience init(customView customView: UIView)OBJECTIVE-C - (i..
-
[Apple Dev Reference] Nullability and Objective-C앱등이에게 살충제를 뿌린다./Apple Dev Reference 2016. 5. 22. 18:04
Nullability and Objective-C글 하단에 3줄요약 해놓음 Swift와 Objective-C를 한 프로젝트에서 같이 사용할 수 있다는 것. Swift의 장점 중 하나입니다.(이걸 장점이라고 해야하나 모르겠네요) 하지만 Objective-C와 Swfit에는 명백히 많은 차이점이 존재합니다. 그 중 하나를 예로 들어보겠습니다. Swift에는 Optional타입과 non-Optional타입이 존재합니다. NSView와 NSView?같이 말이죠. 반면에, Objective-C에는 딱 하나 NSView *만 존재하고 있습니다. 이 차이점으로 인해 컴파일러는 혼돈이 생길 수 밖에 없습니다. NSView *가 Optional인지 non-Optional인지 알 도리가 없는거죠. 따라서 현재(Swift2..
-
[iOS] 깔끔한 달력 오픈소스.앱등이에게 살충제를 뿌린다./iOS 2016. 5. 2. 00:28
달력 뷰를 직접 생성하려면 정말 머리아프다.타이레놀을 아끼기 위해서 오픈소스를 뒤져보던 중 너무나 깔끔한 것을 찾았다. 사용법(초간단 심쿵주의)먼저 pods에 추가해야하므로, Podfile에 pod 'FSCalendar' 을 추가해주세요. 추가한 뒤 pods update를 통해 라이브러리 추가해주시면 됩니다. 스토리보드에 UIView를 생성 추가한 뷰의 클래스명을 FSCalendar로 입력하면 자동으로 달력뷰 생성 간단한 사용 예시 import UIKit import FSCalendar class ViewController: UIViewController, FSCalendarDelegate, FSCalendarDataSource { //Delegate랑 Datasource프로토콜은 거의 필수로 구현한다고..
-
[Swift] Objective-C 오픈소스(AFNetworking 2.0)를 Swift에 적용시켜보자앱등이에게 살충제를 뿌린다./Swift 2016. 3. 21. 00:28
AFNetworing을 사용해보려고 다운을 받았는데, Objective-C로 되어있네요.스위프트에 적용시키는 법을 알아봅시다. 1. Build Settings - Defines Module을 YES로 설정해줍니다. 2. bridge.h 파일을 하나 만들어 줍니다.(저 밑줄 부분만 적어주시면 됩니다.) 3. Build Settings - Swift Compiler - Objective-C Bridging Header에서 작성한 파일명을 넣어주세요. 4. 교감 끝 5. 진짜 끝 출처 : http://stackoverflow.com/questions/24120402/swift-and-afnetworking-integration
-
[iOS] Block을 사용할 때 주의해야할 점 : 순환참조(RetainCycle)로 인한 Memory Leak앱등이에게 살충제를 뿌린다./iOS 2016. 1. 17. 19:28
Block은 캡쳐링을 통해 Context의 걊을 전달하는 기능을 갖고 있습니다. 캡쳐링이 가능하기 때문에 장점을 가지기도 하지만 구멍또한 존재합니다. 1. 문제 발생 예제를 통해서 보겠습니다. 1. ViewController 객체 내부에서 model이란 객체를 strong으로 갖고 있구요. 2. model에서 ViewController를 참조하게 되는 블락을 전달하려고 합니다. Capturing 'self' strongly in this block is likely to lead to a retain cycle. : block에서 self를 강하게 참조하고 있기 때문에 순환참조 발생 가능성이 있습니다.라고 하고있네요. 네. model 객체에서 viewcontroller객체를 강하게 참조하고 있고 view..
-
[iOS/Objective-C] NSCopying과 NSCoding의 차이를 알아보자.앱등이에게 살충제를 뿌린다./Objective-C 2016. 1. 7. 23:20
NSCopying과 NSCoding 이름만 들으면 무언가 Array와 Dictionary마냥 유사한 부분이 있을것 같네요. 하지만 그렇지 않아요. 개념만 짚도록 해볼게요. 1. NSCopying copy메소드 아시죠? NSObject에 구현되어 있기 때문에 모든 객체에서 사용이 가능합니다. //편의상 h파일만 #import @interface Person : NSObject @end 이런 클래스가 있다고 가정합시다. 그리고 copy를 시도합니다. unused variable이라는 경고만 있을 뿐, 에러가 발생하지 않습니다. 당연하죠. Person에는 copy메소드가 구현되어 있을테니까요. 실행해보겠습니다. 음.. 같이 웃으며 망년회하던 HR에서 권고사직을 권하는듯한 통수네요. 하루종일 아무일 없다가 함수..
-
[iOS] -(BOOL)writeToFile:atomically: 메소드가 궁금해?앱등이에게 살충제를 뿌린다./iOS 2016. 1. 3. 21:40
-(BOOL)writeToFile:atomically:라는 메소드에 대해서 알아봅니다. writeToFile: 이름만 들어도 File에 객체를 쓸 것 같네요. 맞습니다.객체를 file에 아카이빙 하는 메소드입니다. atomically: 이름만 들어도 한번에 모든일을 동시에 처리할 것 같습니다. 맞습니다.atomically:에 YES를 전달하면 아카이빙은 임시 백업 파일에 먼저 기록하고 기록이 모두 성공하면 최종 데이터를 지정한 파일에 저장하게 됩니다.원본 파일의 손상을 막을 수 있고 시스템이 크래시를 내는일을 방지합니다. NSDictionary *glossary = @{@"class":@"class is good",@"struct":@"struct is also good"}; if ([glossary w..