[Objective-c 베이스 - 3.3] Block 데이터 유형
6321 단어 Objective-C
1. Block 유사 함수
(1) 코드 저장 가능
(2) 반환값 있음
(3) 유형삼
2. Block의 플래그:^
1 // block
2 void (^myblock)() = ^{ // , ()
3 NSLog(@" block");
4 };
5
6 myblock();
7
8 // block
9 int (^sum)(int a, int b) = ^(int a, int b){
10 return a + b;
11 };
12
13 int c = sum(10, 11);
14 NSLog(@"%d", c);
3. 코드 블록 밖의 데이터에 접근할 수 있다
1 int a = 10;
2 void (^block)();
3 block = ^{
4 NSLog(@"a = %d", a);
5 };
6 block();
out:2014-11-15 09:25:34.766 04-block[1355:303] a = 10
4. 코드 블록 밖의 부분 변수는 수정할 수 없습니다.
1 int a = 10;
2 void (^block)();
3 block = ^{
4 a = 20; // , block
5 NSLog(@"a = %d", a);
6 };
7 block();
해결: 로컬 변수에 ""추가block 키워드
1 __block int a = 10;
2 void (^block)();
3 block = ^{
4 a = 20; // error
5 NSLog(@"a = %d", a);
6 };
7 block();
out:2014-11-15 09:28:52.814 04-block[1376:303] a = 20
5. typedef 사용
1 typedef int (^MyBlock) (int, int);
2
3 MyBlock sumBlock;
4 sumBlock = ^(int a, int b){
5 return a + b;
6 };
7
8 MyBlock minusBlock;
9 minusBlock = ^(int a, int b){
10 return a - b;
11 };
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PreferenceBundle에서 오른쪽 상단에 Respring 버튼을 클릭합니다.만나서 반갑습니다, Minazuki라고합니다. 프로필 이름 : Minazuki_dev Twitter : Repo : 아직 중학생이므로 말이 이상한 곳이 있습니다만 용서해 주세요… 🙏 theos (Mac이든 단품이든 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.