woshidan's loose leaf

ぼんやり勉強しています

2017-08-01から1ヶ月間の記事一覧

ブロックの中でローカル変数を変更したい

ローカル変数は何も修飾子をつけていないとブロックの中で参照はできても変更はできない。 // ダメな例 int count = 0; [Util executeSomeBlock:^{ count += 1; // ビルドできない }]; これだとちょっとしたことを他のスレッドに投げてその結果を受け取りた…

マルチスレッドプログラミングのレビューにて

先輩に言われてひぎゃーって叫んだ本日のNG集的な。 別スレッドの処理を待って次の処理を実行する方法 コールバック コールバック地獄とはなんたるや GCDのdispatch_sync 使う dispatch_sync はキューに入れたタスクのデッドロックに注意 別スレッドの処理を…

ブロックを引数にして関数を書く素振り

ブロックはObjective-Cではなく、Mac OS X 10.6, iOS4 以降にC言語の機能として実装されたもの。 他の言語の機能でいうとクロージャ。 試しに書いてみる // ブロックオブジェクトの定義 // ^(引数列) { 本体 } // int型の引数を一つ取り、値を返さない関数へ…

とりあえず今日はセマフォを使ってみたい

Javaでよくあるインスタンスによるロックしか実はまだよくわからない感じなので*1、とりあえず叩いてみますね。 セマフォを使わない場合 // エキスパートObjCからの引用 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAUL…

UIImageViewはデフォルトだと正方形になるのとNSConstraintは親Viewに対して親Viewと子Viewないし子View同士の関係を指定する

NSConstraintは親Viewに対して親Viewと子Viewないし子View同士の関係を指定する これが独学Androiderに理解できなくて理解できた瞬間うぉぉたぁああって感じだった UIImageViewはデフォルトだと translatesAutoresizingMaskIntoConstraints = YES Autoresizi…

GCDでちょっと遊ぶ

バックグラウンドスレッドに非同期で実行したい処理を投げる memo dispatch_async(タスクを入れるキュー, ^{ // タスクの処理内容を表すブロック }); 例 dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); di…

iOS9で追加されたMultiTaskはiOS11で下からスライドでDockが出るようになったらしい

iPadのMultiTask概要 iOS9から実装されている iPadで画面右端からスライドさせると、 Slide Over のアプリ選択のUIかすでに起動された二つ目のアプリの画面が出てくる Split Viewが実装されているアプリを起動している時に Slide Over のビューを出すと2つの…

\[LayoutConstraints\] Unable to simultaneously satisfy constraints. のログを確認する

コードで NSLayoutConstraint を追加してレイアウトを記述していると、 2017-08-23 20:08:37.967040+0900 TestApp[19312:543735] [LayoutConstraints] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the foll…

_Pragma演算子と#pragmaディレクティブを使ってObjCで書いたコードの警告を抑制する

仕事で触っているソースコードの中に #define SOME_WARNING_PROCESS_START _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wpartial-availability\"") #define SOME_WARNING_PROCESS_END _Pragma("clang diagnostic pop") のような…

型が指定できないフォーマットのデータに入っている値の型を信用しない。フォールバック処理をデフォルトで動くからで止めずに確認する

こないだ、JavaScriptのコードからJavaのコードへ値を引き渡すとき、JSONの文字列にして渡すことがありまして。 そのときに受けたレビューで、Javaが期待している型が String だけど、JavaScriptからは Array だって Int だって入れられるのでは、という指摘…

Webサーバのkeepaliveとは

久々に書いておいて、めっちゃざっくりした感じででかく出たタイトルだな、と思ったんですが、まぁここloose leafですしね。 この記事では、「keepalive」という言葉が、webサーバの設定でどう言う意味を指すか、みたいなところを確認します。 TL;DR TCP/IP…