2025.08.29
Laravelで空判定にif文を使うとハマる理由
2014.06.06
開発環境・ツール非同期処理にBoltsを使って処理をシンプルに

こんにちは、TKです。
iPhoneでの非同期処理の記述で便利そうなのがあったので紹介します。
https://github.com/BoltsFramework/Bolts-iOS
BasSの勉強会で名前が出たParseが提供しているライブラリです。
インストールはcocoaPodsで
pod "Bolts"
簡単な動作例を
// 非同期処理の呼び出し側
[[self doSomething] continueWithSuccessBlock:^id(BFTask* task) {
//非同期処理が終わったら実行
...
return nil;
}]
- (BFTask *)doSomething
{
BFTaskCompletionSource *task = [BFTaskCompletionSource taskCompletionSource];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
//非同期の処理
[task setResult:object];
}
return task.task;
}
以下で非同期処理結果による場合分けもできます。
[[self saveAsync:obj] continueWithBlock:^id(BFTask *task) {
if (task.isCancelled) {
// the save was cancelled.
} else if (task.error) {
// the save failed.
} else {
// the object was saved successfully.
PFObject *object = task.result;
}
return nil;
}];
複数の非同期処理の並列処理も可能です
NSMutableArray *tasks = [[NSMutableArray alloc] init];
for (Message *msg in messages) {
BFTask *task = [self doSumthing:msg];
[tasks addObject:task];
}
[[BFTask taskForCompletionOfAllTasks:tasks] continueWithBlock:^id(BFTask *task) {
// 全ての非同期処理が終わったら実行
...
return nil;
}];
【記事への感想募集中!】
記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!【テクノデジタルではエンジニア/デザイナーを積極採用中です!】
下記項目に1つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
1
2025.08.29
Laravelで空判定にif文を使うとハマる理由
2

2025.08.29
Git SSH接続でfetch/pullができなくなった時の対処法
3

2025.08.28
【体験談】Amazon Linux 2でMySQLインストール時のOpenSSL・GPG key エラーにハマった話
4
2025.08.28
【AWS】SSMポートフォワーディングとInstance Connectを利用したプライベートEC2へのSSH接続手順
5
2025.07.24
Log::info()が使えない!?Laravel.logのPermission denied エラーを解決する(Docker環境)
タグ検索