이의이 두 번째 총알 시작하자 : 클래스 메소드가 +
로 선언, 인스턴스 메소드는 -
으로 선언됩니다.
첫 번째와 세 번째는 관련이 있습니다. block이라는 매개 변수는 코드 블록이며 나중에 실행되도록 의도 된 코드 조각입니다. 이 메서드의 이름이 apiCall
이라면,이 메서드는 호출이 완료된 후에 실행되는 것이 좋습니다.
이 메서드는 다른 스레드에서 일부 작업을 수행 한 다음 사용자가 제공 한 블록을 호출하는 것이 자연 스럽지만 당연히 설명서 나 코드를 확인해야합니다.
서명 : (void (^)(NSMutableArray* list)) block
은 void 반환 형식 및 NSMutableArray* list
을 매개 변수로 사용하는 코드 블록을 설명합니다.
블록 매개 변수의 사용 예는 다음과 같습니다 API를 인스턴스가 그것을 할 생각되어 어떤 일을 수행
void (^apiCallCallback)(NSMutableArray*) = ^(NSMutableArray* list) {
NSLog(@"The API returned %d items in a list", [list length]);
}
[someApiInstance apiCall:apiCallCallback];
후에는 로그 문이 인쇄 된 것을 볼 수 있습니다.
이것은 세 가지 질문입니다. 두 번째 두 가지는 이미 여러 번 답변되었습니다 : [ObjC에서 + 기호가 의미하는 것은 +는 무엇입니까?] (ObjC에서 캐럿의 의미는 무엇입니까?) (http : //www.opensoverflow.com/questions/2097294/) /stackoverflow.com/questions/1912023/) –
첫 번째 질문은 사실 꽤 재미 있습니다. 또한, 이것은 [The Objective-C Programming Language] (http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjectiveC/)와 같은 언어 사양에 가깝습니다. (메소드 이름과'^'의 앞에'+'와'-'의 의미에 대한 설명이 있습니다.) –