본문 바로가기
[ios] extern const vs. static const in header [ios] extern const vs. static const in header -extern 으로 설정하면 global 하게 유효한 변수가 되기 때문에 == 비교가 가능하다. -static 으로 설정된 변수는 본디 Objective-C 에서는 해당 파일에서 유효하다.따라서 == 비교가 불가능하고, 해당 Type 에 대해 비교를 해야 한다. -Globally Unique 한 Const 선언을 위해서라면 extern 으로 설정하여 사용하는 것이 더 옳다. -주의사항은, extern 으로 설정하는 녀석들은 접두어를 잘 붙여서 사용해야 conflict 가 나지 않는다. [Objective-C] Constant(상수) 정의하기[ios] objective-c 에서의 static constant 정의 하는 방법... 2017. 12. 15.
[Kotlin Tutorial] Operator overload 와 convention #1 - Chap7. Operator overloading and other conventions [Kotlin Tutorial] Operator overload 와 convention #1 - Chap7. Operator overloading and other conventions 참조 : Kotlin in action -Java 에는 특정 class 에 결속되어 있는 언어적 기능이 있다.예를 들어 Iterable 를 구현하면 for loop 에서 쓸 수 있고, AutoCloseable 을 구현하면 try-with-resources 에서 사용할 수 있다. Kotlin 도 비슷한 것들이 있다.그러나 specific type 에 결속된 것이 아니라 specific name 에 결속되는 기능들이 있다.예를 들어 plus 라는 이름으로 class 에 function 을 추가하면, + operator 를 해.. 2017. 8. 24.
[Effective Objective-C] #14 클래스 객체가 무엇인지 이해하라 [Effective Objective-C] #14 클래스 객체가 무엇인지 이해하라 출처 : Effective Objective-C -객체 타입은 컴파일 시간에 결정되지 않고 실행 시간에 찾는다. -컴파일러는 리시버가 이해할 수 없다고 생각되는 메시지를 보내는 것에 경고를 보낼 수 있다.반대로 id 타입의 객체는 모든 메시지에 응답할 수 있다고 여긴다. -실행 시간에 객체 타입을 알아내는 것을 내성(introspection)이라 하고, 이는 Foundation 프레임워크의 NSObject 의 프로토콜로 녹아 들어간 강렬하고 유용한 기능이다.이 프로토콜은 모든 공통 최상위 클래스(NSObject 와 NSProxy) 를 상속받는 모든 객체가 따르는 프로토콜이다.객체의 클래스를 직접 비교하는 것보다는 이런 메서.. 2017. 8. 16.
[Effective Objective-C] #8 객체의 동등 비교를 이해하라 [Effective Objective-C] #8 객체의 동등 비교를 이해하라 출처 : Effective Objective-C -== 연산자를 사용하면 포인터 값을 비교한다.두 객체가 같은지 비교하려면 NSObject 프로토콜에 정의되어 있는 isEqual: 메서드를 사용해야 한다. -몇몇 객체는 이미 같은 클래스인지 확인된 두 객체를 비교하는 특별한 동등 확인(equality-checking) 메서드들을 제공한다. -다음 두 메서드는 NSObject 프로토콜의 핵심 동등 비교 메서드이다.- (BOOL)isEqual:(id)object;- (NSUInteger)hash; 위 두 메서드는 NSObject 클래스에 기본적인 구현이 되어 있다.구현 내용은 두 객체가 같은 객체일 뿐 아니라 포인터도 정확히 같아야.. 2017. 8. 9.
[Effective Java] 박스화 기본형보다는 기본형을 사용하자. [Effective Java] 박스화 기본형보다는 기본형을 사용하자. - 기본형과 박스화 기본형 간에는 크게 세 가지 차이점이 있다. 1. 기본형은 자신의 값만을 갖는 반면, 박스화 기본형은 식별성(identity)를 갖는다. 두 개의 박스화 기본형이 값은 같지만 == 로 비교하면 다를 수 있다는 것이다. 2. 기본형은 완전한 기능 값만을 갖는 반면, 박스화 기본형은 자신과 대응되는 기본형이 가질 수 있는 모든 기능 값에 추가하여 비 기능 값인 null 을 갖는다. 3. 기본형은 일반적으로 박스화 기본형에 비해 실행 시간과 메모리 사용 효율이 좋다. - == 비교 연산자를 박스화 기본형에 적용하면 대부분 틀린 결과가 나온다. 박스화 기본형을 비교할 떄는 두 개의 지역 변수를 추가하여 primitive 타.. 2017. 2. 2.
[Django] 파이썬 웹 프로그래밍 - Django 의 핵심 기능 #1 [Django] 파이썬 웹 프로그래밍 - Django 의 핵심 기능 #1 -책을 읽으며 Remind 하는 내용, 핵심 내용, 모르던 내용을 정리한 것입니다. 예문 및 자세한 설명은 책을 구매하여 보세요~ * 4.1.1. 데이터 입력 및 수정 * 4.1.2. 필드 순서 변경하기 -테이블 데이터 변경이 아닌 테이블을 보여주는 UI 양식 변경은 admin.py 파일을 변경하면 된다.아래와 같이 순서에 대해 정의하는 admin.ModelAdmin 을 상속하는 녀석을 만들고, register 할 때 이 class 를 함께 전달하면 된다. class QuestionAdmin(admin.ModelAdmin): fields = [‘pub_date’, ‘qestion_text’].. 2016. 12. 13.
[iOS Study] 오토 레이아웃 : 프로그래밍으로 제약조건 만들기 [iOS Study] 오토 레이아웃 : 프로그래밍으로 제약조건 만들기 출처 : 아론 힐리가스의 iOS 프로그래밍 -애플은 가능한 한 XIB 파일에서 뷰를 만들고 제한하는 것을 추천한다.하지만 코드로 뷰를 만들면 프로그래밍으로 제약 조건을 적용해야 한다. -프로그래밍으로 뷰를 만들기 위해서는 loadView 메소드를 재정의한다.NIB 파일을 로드하여 만들어진 뷰 계층구조에 뷰를 추가하고 제한하려면 viewDidLoad 메소드를 재정의한다. -변환 제약조건(translated constraints)에 관한 코드는 예전 시스템 인터페이스인 오토리사이징 마스크(autoresizing mask)와 함께 동작해야만 한다.iOS 앱은 오토 레이아웃이 도입되기 전에 여러 크기의 화면에 따라 뷰를 조절하기 위해 오토리사.. 2016. 3. 4.
[Effective Java] equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. [Effective Java] equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. - 인스턴스의 동일 여부를 판정하는 equals 메소드의 오버라이딩은 간단한 것 같지만, 잘못되는 경우가 많아서 참담한 결과를 초래할 수 있다. ( 기본 equals 는 참조를 비교한다. ) - 다음의 조건이 만족된다면 슈퍼 클래스의 equals 를 그냥 사용해도 된다. 1. 클래스의 각 인스턴스가 본래부터 유일한 경우. 2. 두 인스턴스가 논리적으로 같은지 검사하지 않아도 되는 클래스의 경우. 3. 수퍼 클래스에서 equals 메소드를 이미 오버라이딩 했고, 그 메소드를 그대로 사용해도 좋은 경우. 4. private 이나 패키지 전용(package private) 클래스라서 이 클래스의 equals 메소드가.. 2015. 12. 31.
[Tutorial] Introduction of PHP. Introduction of PHP. Tutorial 대신 를 사용하는 것을 SGML 방식이라고 하며, 이 스타일을 사용하려면 config 파일의 short_open_tags 를 활성화시키거나 짧은 스타일 태그를 사용할 수 있도록 PHP 를 컴파일 해야 한다. 이 방식은 대부분의 서버가 지원하지만, 몇몇 서버는 xml 형태의 선언에 영향을 주기 때문에 Off 를 시켜 놓는다. 따라서 특수한 경우 혹은 config 에 확신이 있는 경우가 아니면 사용하지 않는 것이 좋겠다. 형식으로도 사용 가능하다. ASP 방식으로 알려진 도 사용할 수 있는데, 이 역시 config 파일에서 asp_tags 를 활성해놓았어야 사용할 수 있다. 이는 대부분의 서버에서 기본으로 활성화되어 있지 않기 때문에 "가급적" 사용하지 .. 2013. 10. 5.
반응형