블록을 학습 할 때 나는 갇혔다.블록 iOS에서 NSString에 쓰기
NSString * myString을 반환하는 함수가 있습니다. 그리고 블록에서 문자열에 써야하므로 정의 할 때 앞에 __block을 추가했습니다.
블록에서 모두 괜찮아 보입니다. 글을 쓸 수있었습니다. 하지만이를 반환 할 때 '선언되지 않은 식별자'myString '을 사용하면 오류가 표시됩니다.
아무도 블록 이후에 myString을 강력하게 가리키고 있기 때문입니다. 옳은? 하지만 문제를 해결하려면 어떻게해야합니까?
- (NSString *)fetchString{
__block NSString *myString;
SLRequest *aRequest = [....];
[aRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSArray *myArray=[NSArray array];
myArray= [NSJSONSerialization JSONObjectWithData:responseData options:0 error:nil];
myString = [myArray objectAtIndex:0];
}];
return myString;
}
코드를 표시하십시오. –
@KurtRevis 언급했듯이, 우리에게 코드 샘플을주세요. 이야기를 통해 코드를 디버깅하는 것은 어렵습니다. – nembleton
@KurtRevis 죄송합니다. 코드를 추가했습니다. – user1491987