OC 언어-block
block은 함수와 비슷해서 코드를 저장할 수 있고 반환값도 있고 행참도 있고 호출방식도 같다.
Block에 인삼이 없으면 뒤에 있는 작은 괄호를 생략할 수 있습니다.
1. 새 참조가 없는 Block 변수 정의
void(^myBlock)() = ^{
NSlog(@"----------")
};
// block block
myBlock();
2. 매개 변수가 있는 Block
int(^sumBlock)(int, int) = ^(int a, int b)
{
return a + b;
};
int c = sumBlock(10 ,20);
3. 블록을 하나 또는 여러 직선으로 출력할 수 있도록 작성한다.
void(^lineBlock)(int) = ^(int n)
{
for(int i = 0; i<n; i++){
NSLog(@"------------");
}
};
// 3
lineBlock(3);
4. typedef를 사용하여 Block 정의
typedef int (^MyBlock)(int, int);
MyBlock sumBlock;
sumBlock = ^(int a, int b){
return a+b;
};
혹은
MyBlock sumBlock = ^(int a, int b){
return a+b;
};
주의: 호출할 때 MyBlock을 사용할 수 없고 변수 이름으로 호출합니다
//
NSLog(@"%d-%d",sumBlock(10, 9));
5. Block 내부에서 바깥에 접근할 수 있는 변수
기본적으로 bock 내부에서 외부의 국부 변수를 수정할 수 없습니다
로컬 변수에 더하기Block 키워드, 이 부분 변수는 Block 내부에서 수정할 수 있습니다
int a = 10;
_block int b = 20;
void(^block)();
block = ^{
NSLog(@"a = %d, a);
b = 90;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 변수의 역할 영역(유효 범위)역할 영역은 사용할 수 있는 범위를 가리킨다.변수에 국한되지 않고 유효한 범위를 작용역이라고 부른다.이번에 변수 작용역에 관한 실례를 기재하다. 이렇게, 당신은 직접main에서chain의 변수를 가져올 수 없습니다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.