2021-01-01から1年間の記事一覧

UIView で Property Wrapper を導入する

UIViewでもこっそり Property Wrapperが使えるようになっていました。 (なお、iOS15からです。) UIViewの表示の更新 今まで、UIViewの見た目を変更するには、View自体を作り直すか、Viewの更新処理を手動でよんだり(setNeedsDisplay)していました。 iOS15…

夜中にjsonのデコードで泣かないために

夜中にコーディングしていて、サーバーAPIから取得したjsonデコードに失敗したんだけど、もう疲れていて詳しく調べるのがめんどくさいことってありませんか? そんな時にはDecodingErrorをみてみましょう。 jsonデコードのエラー iOSの標準のjson decoderはJ…

Async 、 Task 、そして MainActor

async/await使ってみましたか? コードがすっきり書けるようになって、とても便利ですよね。 必要な情報だけチェックしてすぐ動かして確認したい方向けに、ざっくりした情報を書いてみました。 すぐ使えるSwift Concurrency!なので、とりあえず書いてみてく…

URLSession で http header 情報を確認する

たまに、APIの結果を処理するときに、MIME Typeを見てから確認したいってことはありませんか? 基本的にはjsonが返るAPIだけど、エラー時にはhtmlになるのでjsonかhtmlか判別してから処理をしたいとか。 そんなときにはURLResponseを見てみましょう。 API He…

UnManaged な CFString

いつも自分で書くコードはすっかりSwiftですが、システムライブラリはまだまだObjective-Cのこともあります。 ObjCのライブラリが返してくれる CFString をSwiftの String にするメモ。 基本的には、CFString はそのままConvertできます。 var str1: CFStrin…

PlaygroundSupportでAR

前回のこちらの記事でSceneKitのビューをPlaygroundで表示する方法について書きましたが、Playgroundは通常のView表示だけでなく、ARもサポートしています。 PlaygroundSupportでSceneKitの画面を表示する - Toyship.org iPadだけでARができるのはハードルも…

PlaygroundSupportでSceneKitの画面を表示する

みなさん、Xcodeのプレビュー機能は使いこなしていますか? 私の環境では、プレビュー画面が表示されないことが時々あります。 作業しながらSafariのタブを数百ページくらい開いていることもあるので、メモリー不足だとはおもうんですが。 Xcodeを再起動した…