ブロックの学習で行き詰まりました。
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;
}