고 품질 iOS 와 OS X 코드 를 작성 하 는 52 가지 효과 적 인 방법 학습 노트(1)
1.Objective-C 언어의 기원 알 아 보기
OC 는 C++,자바 등 대상 언어 와 유사 하지만 여러 가지 차이 가 있다.OC 가 사용 하 는'메시지 구조'(messaging structure)는'함수 호출'(function calling)이 아니 라'메시지 구조'(messaging structure)를 사용 하기 때문이다.Objective-C 언어 는 Smalltalk 이 진화 되 었 고 후 자 는 메시지 유형 언어의 원조 이다.메시지 구조 와 함수 호출 의 차 이 는 메시지 구조의 언어 를 사용 하고 실행 할 때 실행 되 는 코드 는 실행 환경 에 의 해 결정 된다 는 것 이다.함수 호출 언어 를 사용 하면 컴 파일 러 가 결정 합 니 다.
// OC , :
NSString *someString = @"The String"
// ” “(heap space) , ” “(stack) 。 OC :
NSString *stackString;
// error:interface type cannot be statically allocated
// someString , , , 。
NSString *someString = @"The String";
NSString *anotherString = someString;
// , NSString * , , (32 4 ,64 8 )。
Objective-C 와 Runtime 참고:왜 그래 요?
2.클래스 의 헤더 파일 에서 다른 헤더 파일 을 최대한 적 게 인용 합 니 다.
import "Model2.h"
이라는 방법 이 가능 하지만 우아 하지 않다.여기 컴 파일 러 는 model 2 를 사용 하지만 model 2 의 모든 세부 사항 을 알 필요 가 없습니다.model 2 가 존재 하 는 것 만 알 면 됩 니 다.이곳 에서 우 리 는 class Model2
을 채택 할 수 있다.이것 은 앞으로 성명(forward declaring)이 라 고 합 니 다.그러나 실현 파일 에서 모델 2 의 모든 세부 사항 인 import "Model2.h"
을 알 아야 한다.import
의 다른 파일 은 중복 인용 을 초래 할 수 있다. AB :A import B、B import A A B, B A
이지 만 실현 문서 에 서 는 이런 일이 없 을 것 이다.앞으로 성명 을 사용 하면 클래스 간 의 결합 을 낮 출 수 있 습 니 다.예 를 들 어 특정한 클래스 가 프로 토 콜 을 따 르 는 것 을 설명 할 수 없습니다.이 때 는'프로 토 콜'성명 을 따라'class-continuation 분류'로 이동 합 니 다.그렇지 않 으 면 프로 토 콜 을 하나의 헤더 파일 에 단독으로 넣 고 도입 합 니 다.
3.글자 로 문법 을 재 고 그 와 등가 하 는 방법 을 적 게 쓴다.
NSNumber *doubleNumber = @3.14159;
NSNumber *boolNumber = @YES;
NSNumber *charNumber = @'a';
NSNumber *intNumber = @2;
NSNumber *floatNumber = @2.6f;
//
NSNumber *x = @2;
NSNumber *y = @2.6f;
NSNumber *expressionNumber = @(x * y);
정상 생 성 배열:
NSArray *animals = [NSArray arrayWithObjects:@"dog",@"cat",@"mouse",nil];
정상 추출 요소 NSString *dog = [animals objectAtIndex:0];
자 면 량 생 성 NSArray *animals = @[@"dog",@"cat",@"mouse"];
자 면 량 획득 요소 NSString *dog = animals[0];
주의:자 면 량 생 성 배열 이나 사전 시 값 에 nil 이 있 으 면 이상 을 던 집 니 다.mutableCopy
4.다 용도 상수,적 게 사용\#define 예비 처리 명령
#define ANIMATION_DURATION 0.3
예비 처 리 는 만 나 는 모든 ANIMATION_DURATION
을 0.3 으로 바 꾸 고 이 예비 처 리 는 데이터 형식 을 규범화 시 키 지 않 습 니 다.static const NSTimeInterval kAnimationDuration = 0.3
static 수식 자 는 이 변 수 는 정 의 된 차 변수의 컴 파일 단원 에서 만 볼 수 있 음 을 의미한다미 완성 계속...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.