Swift
-
[iOS] Photos Framework를 알아보자. (간단히)앱등이에게 살충제를 뿌린다./iOS 2017. 3. 11. 22:55
as of iOS10.2, XCode8, Swift3 앱에서 사진첩에 있는 사진, 동영상을 보여줄일이 많습니다.이 때, Photos 프레임워크를 사용해야합니다.기존에는 AssetsLibrary 프레임워크를 많이 사용했지만 iOS9에 들어서 Deprecated되었다. 대체로 사용해야할 프레임워크가 바로 Photos프레임워크인거죠. Photos 프레임워크에 있는 클래스는 PH라는 Prefix를 갖습니다. ex) PHAsset, PHCollection 등등. Photos 프레임워크를 사용해야 한다는 사실을 알았으니, 이 글에서는 Photos에서 제공하는 주요 클래스들에 대한 이야기를 해볼까합니다.(야 다 집어치코 샘플코드내놔 하시는 분은 링크를 클릭) -> 링크PHAssetPHAssetCollectionPHC..
-
[XCode] Xcode 템플릿(Template)을 만들어보자.앱등이에게 살충제를 뿌린다./iOS 2017. 3. 10. 14:02
배경로그를 print로 찍어오다가 CleanroomLogger라는 오픈소스를 사용하게 되었다. 스위프트 파일을 생성할 때마다, import CleanroomLogger라는 구문을 찍는 것이 너무 귀찮은 나. 정상인가요? 목적스위프트파일을 새로 생성할 때마다, import Foundation 밑에 import CleanroomLogger가 찍혀있었으면 좋겠다. 과정1. terminal 오픈 2. 다음 커맨드 입력$ mkdir -p ~/Library/Developer/Xcode/Templates/Custom$ cp -R /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File\ Templates/Source/Swift\ File.xcte..
-
[Swift] Swift로 유닛테스트를 하려면? How to Unit-test in Swift?앱등이에게 살충제를 뿌린다./Swift 2017. 1. 9. 19:11
Writing Tests with SwiftThe Swift access control model prevents tests from accessing internal declarations in the app or framework. To access internal functions in Swift with Xcode 6, you need to make these entry points public for testing, reducing the benefits of Swift’s type safety.Xcode 7 provides a two-part solution for this problem:Swift internals are made accessible when building for testi..
-
[Raywenderlich] UIStackView 튜토리얼. (UIStackView Tutorial: Introducing Stack Views)앱등이에게 살충제를 뿌린다./iOS 2017. 1. 5. 02:06
런타임에 뷰를 추가/삭제하는 상황을 생각해봅시다. 물론 추가/삭제된 뷰와 근처에 있던 뷰들의 위치도 잘 잡아주어야 합니다.어떤 방법이 있을까요? 스토리보드에 새로운 뷰와 관련된 Constraint Outlet을 추가하고 active를 on/off 하면 될까요? 아니면 오픈소스? 직접 코드로 구현할 수도 있겠네요. 이 경우 View Hierarchy가 변하는 것은 아니지만 어떻게든 새로운 뷰를 스토리보드에 넣으려면 많은 고민이 들겁니다. 뷰를 추가/삭제할 때마다 모든 Constraints를 제거하고 새로운 Constraints를 추가하는 방법을 떠올릴 수 있겠네요. 이게 기존 Constraints를 수정하는것보다 쉽긴 하죠. 하지만 UIStackView가 있다면, 위 작업이 꽤나 간단해집니다. 스택뷰를 사..
-
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
-
[Apple Dev Reference - Advanced Swift] Initialization (1)앱등이에게 살충제를 뿌린다./Apple Dev Reference 2016. 10. 24. 23:55
Initialization은 Class, Structure, Enumeration의 인스턴스를 만드는 과정을 말한다. 이 과정에서 프로퍼티의 값을 초기화하거나 초기화에 필요한 작업을 수행하게 된다. 이러한 작업은 개발자가 initializer를 구현하여 수행할 수 있다. initializer는 조금 특별한 메소드라고 생각할 수 있는데, 클래스의 인스턴스나 구조체 등을 만들 때 호출된다. Objective-C의 initializer와 달리 Swift의 initializer는 리턴 값이 없다. 그저 인스턴스를 사용하기 전에 객체에 대한 초기화를 수행할 뿐이다. Class객체는 deinitializer를 구현할 수도 있다. deinitializer는 인스턴스가 메모리에서 해제되기 전에 호출된다. 이 또한 개발..
-
[메모리 절약 Tip] 상수 프로퍼티(variable)가 많다면 프로퍼티(variable) 대신 메소드를 써보자.코딩은 주댕이로 2016. 9. 9. 11:35
iOS 개발 관점에서 작성되어 혼동되는 단어가 있을 수 있습니다. View관련 클래스에는 상수가 많이 들어간다. 이미지의 가로Size, 세로Size, 최대 이미지 갯수, 폰트, 컬러 등등.. 이렇게 많은 상수들을 해당 클래스에서 모두 사용한다면 상관 없지만, 사용하지도 않는 프로퍼티들 때문에 메모리 낭비를 하는 경우가 발생할 수 있다.안쓰는건 선언하지 않으면 되잖아? 라고 생각이 드는게 당연한데, 아래의 상황을 떠올려보자. [SuperView] - 상수30개 보유|[SubViewClass1(사용상수 10개)] [SubViewClass2(사용상수 7개)] [SubViewClass3(사용상수 2개)] ..... 이런 구조에서 모든 Cell의 superView가 되는 SuperCell에 Cell관련 상수들을 ..
-
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..