System Framework以外でも自動変換が行われるケースに遭遇したけど自動変換されるものとされないものの違いが分からなかったので調査。 Xcode 13 Release Notes には以下のように記載がある。 https://developer.apple.com/documentation/xcode-release-note…
以下5つは同じ Task { } Task.init { } Task.init() { } // deprecated async { } // deprecated async() { } 以下6つは同じ Task.detached { } Task.detached() { } // deprecated Task.runDetached { } // deprecated Task.runDetached() { } // deprecate…
Xcode engineer の人がこんなツイートをしていた Overriding functions with default arguments is fun in Swift! Guess what this prints. pic.twitter.com/CBtZ6am6R9— Louis D'hauwe (@LouisDhauwe) 2021年7月13日 早速 Playground で確認 まずクラスとメ…
新規アプリで Xcode のテンプレートからプロジェクトを作成すると Assets.xcassets に AccentColor という名称のカラーアセットが用意されている。これに色を設定するとアプリ全体の AccentColor として反映される。 import SwiftUI struct ContentView: Vie…
Comparison operator + logical AND operator 他の言語と同じ < > <= >= && を使うパターン 条件 比較演算子+論理和演算子 0以上1以下 if 0.0 <= value && value <= 1.0 0以上1未満 if 0.0 <= value && value < 1.0 0超え1以下 if 0.0 < value && value <= 1…
少し調査部分が長くなってしまったのでざっと読みたい人は「まとめ」の段をどうぞ UIButton でメソッドの実行を設定するには親クラスの UIControl で定義されている以下のメソッドを使用する。 func addTarget(_ target: Any?, action: Selector, for contro…
新規プロジェクト作成でプロジェクトテンプレートから iOS App を選択 Interface SwiftUI, Life Cycle SwiftUI App, Language Swift を選択して Use Core Data をチェック 作成される初期画面 ContentView の body とビルド結果は以下 var body: some View {…
String でひらがなの「が」と「か」+「濁点」は等価か? の実験メモ The test for Equatable of precomposed characters … という事で答えは true 厳密な区別が必要ない場合はカジュアルに等価比較して良さそう。
Xcode 12 への移行はまだ先の予定だけど取り敢えず iOS 14 で動作確認・修正作業をしたいなんてケースがある。 そこでタイトルの「Xcode 11 で iOS 14 Simulator を使用する」これができるらしい。 stackoverflow.com 手順 Xcode 12 付属の iOS Simulator を…
iOS 13でOCRに使えるテキスト認識のAPIが登場。 使えるRevisionは1。iOS 14でRevision 2が登場した。 @available(iOS 13.0, *) public let VNRecognizeTextRequestRevision1: Int @available(iOS 14.0, *) public let VNRecognizeTextRequestRevision2: Int …
検証環境 Xcode 11.4.1 iOS+ヒラギノ+UILabel とか UIButton でググると過去の UIKit での問題が参照できます。 この問題は SwiftUI でも発生します。 まずサンプルとしてヒラギノ角ゴのW3を指定して Text を作成。 (デバッグのため青色の枠線も表示) Japa…
WWDC 2019 Session 233 Mastering Xcode Previews https://developer.apple.com/videos/play/wwdc2019/233/ を見ていて、あれ、これもしかして Deployement Targe iOS 13以降のプロジェクトじゃなくても SwiftUI のプレビュー表示は使えるんじゃない?と思っ…
WWDCのメモリのセッションを見ていたら思わぬTipsについて言及されていた。 WWDC 2018 iOS Memory Deep Dive の20分57秒あたり https://developer.apple.com/videos/play/wwdc2018/416 UIGraphicsBeginImageContextWithOptions を使うのはやめて UIGraphicsI…
AVSpeechSynthesizer の delegate メソッド speechSynthesizer(_:willSpeakRangeOfSpeechString:utterance:) は音声読み上げの際にこれから読み上げる箇所を NSRange で知らせてくれる。 このメソッドを使って読み上げテキスト全体のうち今どこが読まれてい…
Xcode 11.2 で Storyboard か xib で UITextView を使っていると iOS 13.2 より前のバージョンでクラッシュするという凶悪なバグが発生している。 実際にクラッシュを起こしてみると以下の様に _UITextLayoutView ってクラスは無いとエラーメッセージが表示…
最近 iOS 13 でバグも含め挙動が変わった点で色々と苦労している。そんな中良い改善点もあった。タイトルの複数の AVSpeechSynthesizer の同時再生がその1つ。 これまでは AVSpeechSynthesizer の同時再生はできなかった。できないと一口に言っても妙な挙動…
Xcode 11, iOS 12.2, iOS 13.1, iOS 13.1.3 で動作確認 デフォルトの読み上げ音声の言語の確認 AVSpeechSynthesisVoice.currentLanguageCode() 参考に読み上げ確認の実装 (AVSpeechSynthesisVoice を設定せずデフォルト状態での読み上げ) let synthesize =…
タイトルの通り iOS 13 で EventKitUI に UIFont のカテゴリメソッドが追加された。 @property(nonatomic, readonly, class) UIFont *ek_defaultOccurrenceSecondaryTextFont; + (UIFont *)ek_defaultOccurrencePrimaryTextFontForSizeClass:(UIUserInterfac…
まず初めに以下の様なString型の enum を用意する。 enum SegueIdentifier: String { case a case b } Swift 5 以前 UIViewController の prepareForSegue メソッド内で segue.identifier から enum SegueIdentifier の作成を行う。 segue.identifier の型は…
タイトルの通り、iOS 13 で以下のメソッドが depecated になった。 UIView - UIKit | Apple Developer Documentation Animating Views class func beginAnimations(String?, context: UnsafeMutableRawPointer?) class func commitAnimations() class func s…
前回までの変更点 koze.hatenablog.jp 今回は iOS 13 beta 3 で変更点をチェック。 追加フィルタは1つで、他若干の追加APIが見られた。 https://gist.github.com/Koze/86315376f00fa44662f0d841f046e5d2/revisions iOS 13 beta 3 CIRoundedRectangleGenerato…
iOS 13 で何か追加の CIFilter はあったかな?と思って diff を取ってみたら面白かった。 使った出力はワンライナーでこれ CIFilter.filterNames(inCategory: nil).forEach{print($0)} CIFilter Changes iOS 12 - iOS 13 https://gist.github.com/86315376f0…
WKWebpagePreferences WKWebpagePreferences クラスが追加された。 既存では WKPreferences というクラスが WKWebView 全体の設定クラスとして用意されている。 新たに追加された WKWebpagePreferences は基本的にはページ単位での設定クラスになる。 どうい…
CGPDF 周りの新APIを発見 func CGPDFContextBeginTag(_ context: CGContext, _ tagType: CGPDFTagType, _ tagProperties: CFDictionary) CGPDFContextBeginTag(_:_:_:) - Core Graphics | Apple Developer Documentation func CGPDFContextEndTag(_ context:…
AppKit で気になった追加API NSScreen var localizedName: String { get } localizedName - NSScreen | Apple Developer Documentation これまではスクリーン(macOS ではディスプレイ)に関する情報の取得は CGDisplay 系のAPIで取得していた気がする。 も…
こっちの記事の派生で Core Data の更新箇所だけ切り出し koze.hatenablog.jp Core Data Default Value オプション Core Data のモデルの String attribute で Default Value の項目が空の場合に Null String を使うか Empty String "" を使うかのチェックボ…
気になるところだけざっくり Xcode 11 Beta Release Notes | Apple Developer Documentation New Features SwiftUI(書くまでもなく) Application Loader が Xcode に同梱されなくなった Asset Catalog Asset Catalog でキーボードショートカットでのコピペ…
Xcode 11から IBSegueAction が追加された。利用可能なOSは iOS 13, macOS 10.15以降 この新機能は Segue で接続し呼び出す ViewController への必須パラメータ渡しの点でメリットがある。 既存実装 prepare(for:sender:) だと func prepare(for segue: UISt…
クラッシュ時のコンソールログは以下 *** Assertion failure in -[UIDocumentPickerViewController _commonInitWithCompletion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3599.6/UIDocumentPickerViewController.m:91 *** Termin…
Xcode + iOS Simulator ででたまに遭遇するアプリが起動しない以下のエラー。 This app could not be installed at this time. クリーンビルドするとか Xcode や Mac を再起動するなどいくつか紹介されているけど他の方法も見つけたので1つの解決の例として…