What Happened to NSMethodSignature?

Objective-C에서 사용되던 동적 메소드 호출과 관련된 기능은 Swift에서 지원되지 않으며, 이는 Swift의 제네릭과 프로토콜을 이용한 패턴으로 우회하여 구현할 수 있다. 또한 이러한 방법은 컴파일 시점에 체크가능한 더 안전한 코드를 생산하게 하며, 성능에 있어서도 유리한 이점을 챙길 수 있다.

코코아 바인딩이란

코코아 바인딩 기능적인 측면에서 가장 단순하게 설명하면, 코코아 바인딩은 모델과 뷰 사이에 어떠한 글루코드 없이 값과 디스플레이되는 것을 동기화시키는 것이다. 즉 바인딩을 구성하면 값이 바뀔 대 별도의 처리 없이 자동으로 뷰가 업데이트되고, 뷰에서 변경이 일어나면 즉시 값이 변경되는 것을 코드 없이 구현한다는 것이다. 즉 작성/유지해야 하는 코드의 양을 최소화하면서 이러한 기능을 제공한다. 코코아 바인딩을 적용하기

Objective-C :: 임의의 데이터 타입을 NSData로 인코딩하기

NSValue NSData 변환 NSValue를 NSData로 변환하는 방법에 대해 생각해보자. 코어데이터 등에서 표준으로 지원하는 타입이 아닌 경우, NSData를 이용해서 이진데이터로 저장하는 방법이 있는데, 예를 들어서 NSRange(이건 C구조체이다.)를 이진데이터로 바꾸는 것은 다음과 같이 하면 된다. NSRange r = NSMakeRange(0, 10); NSValue* v = [NSValue valueWithRange:r]; NSData* d1 = [NSKeyedArchiver archivedDataWithRootObject:v]; 구조체나 스칼라값 타입은 NSValue로 감싼 다음 이진데이터로

블럭의 변수 캡쳐링

블럭 내 변수 캡쳐링 C의 코드블럭은 사실상 여타 프로그래밍 언어의 클로저개념1과 거의 동일하다. 블럭 내부에서는 다음의 변수들을 사용할 수 있다. 전역변수와 정적변수는 블럭내에서 액세스 가능하다. 블럭 내로 전달된 파라미터는 블럭 내부로 복사되며 지역변수처럼 액세스한다. 블럭을 감싼 영역의 스택 변수는 블럭 내에서 액세스 가능하되 상수로 취급한다. 블럭을 감싼 영역에서 __block 변경자와 함께 선언된 변수는 참조로 전달되며,