私は昨日尋ねたこの質問のフォローアップとして書いていますが、元の回答者からの返信はありません。お待ちしておりますが、時間制限があります。彼は私のNSURLConnectionコードで私を大いに助けてくれました、そして私はこれがどのように機能するかを完全に理解しています、しかし私は構文を正しくすることができないようです。
ハンドラーを取得できません:^認識され、この行:
[self loadImageArray:urlArray handler:^(NSMutableArray *)imageArray
また、画像が入力されている配列(loadImageArrayのimageArray)を取得する必要があります。
- (void)loadImageArray:(NSArray *)urls handler:(void(^)( handler)
これにより、サーバーから非同期で配列(imageArray)にデータが入力されます。
ブロック呼び出しを正しく設定するにはどうすればよいですか?いくつかのサイトでブロックについて読んだことがありますが、どの提案も役に立ちませんでした。
繰り返しになりますが、私は元の応答者に質問しましたが、返事はありません。
編集がお役に立てば幸いです。ありがとうございました!
これが私の.hです
@interface OBNSURLViewController : UIViewController
{
NSArray *jsonArray;
NSMutableData *theJsonData;
IBOutlet UIView *mainView;
__weak IBOutlet UIImageView *mainImage;
__weak IBOutlet UILabel *mainLabel;
}
@property (nonatomic, strong) NSData *serverData;
@property (strong, nonatomic) IBOutlet UIScrollView *mainScroll;
@property (nonatomic, retain) NSMutableArray *imageArray;
@property (nonatomic, retain) NSMutableArray *urlArray;
@property (nonatomic, retain) UIImage *imageData;
@end
これが私が立ち往生している関連コードです:
- (void)parseJSONAndGetImages:(NSData *)data
{
//initialize urlArray
urlArray = [[NSMutableArray alloc]init];
//parse JSON and load into jsonArray
jsonArray = [NSJSONSerialization JSONObjectWithData:theJsonData options:nil error:nil];
//assertion?
assert([jsonArray isKindOfClass:[NSArray class]]);
//Make into one liner with KVC.... Find out what KVC is
//Code to load url's into array goes here....
//load the images into scrollview after fetching from server
[self loadImageArray:urlArray handler:^(NSMutableArray *)imageArray //Here is a big problem area
{
//work goes here....
}];
}
- (void)loadImageArray:(NSArray *)urls handler:(void(^)( handler)//This does not want to work either. I am stuck on handler???
{ dispatch_async(0, ^{
//imageArray = [NSMutableArray array];
for (int y = 0; y < urlArray.count; y++)
{
//stuff goes here.....a
});
dispatch_async(dispath_get_main_queue(),^{
handler(imageArray);
});
}