Swift
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 で確認 まずクラスとメ…
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…
String でひらがなの「が」と「か」+「濁点」は等価か? の実験メモ The test for Equatable of precomposed characters … という事で答えは true 厳密な区別が必要ない場合はカジュアルに等価比較して良さそう。
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 のプレビュー表示は使えるんじゃない?と思っ…
タイトルの通り 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 の型は…
前段 CaseIterable を使って case の index を取得する Extension にする ソースファイル 前段 Swift 4.2 の CaseIterable の allCaeses を使って enum の case の一覧や個数が取得可能になり随分便利になった。 表題の enum の index の取得について、まず …
調査の動機 Swift って結構省略して書けるけどその分 Xcode が脳内補完するからビルドが遅くなるんじゃないの? だったら省略表記無しでコードが長くなってもビルド速度が早い方がいい。 エビデンスが無いので一応確認してみよう。 ビルド環境 ビルド環境 本…
部分的に Swift で書き直しているプロジェクトで起きたケース。 .xcdatamodeld のエンティティ設定で Core Data の Code Generation を Objective-C から Swift に変更した後 Objective-C からの呼び出しでクラッシュ まず Objective-C と Swift の Core Dat…
環境 Xcode 10.0 Core Data Code Generation Code Generation は Xcode が Core Data のモデルクラスの基本実装を自動で行ってくれる機能で <ProductName>.build/Debug-iphonesimulator/<ProductName>.build/DerivedSources/CoreDataGenerated/<FileName> の中にファイルが自動で生成される。 Fil</filename></productname></productname>…
概要 元々 Objective-C のみで作られたアプリでライブラリに Firebase と自前の Objective-C Framework を複数含む。 これに Swift クラスを3つ(3ファイル)追加しアーカイブしたものを iTunes Connect にアップロードして「App Store ファイルのサイズ」か…
Playground で delegate メソッドを扱うにはどうする? delegate が呼ばれるクラスの実装が必要、Playground でクラス定義できるの? というあたりが疑問だったけど Playground でも普通にクラス定義が可能で delegate も試せるらしい。 下記の前回のコード…
Playground を使って簡単なオーディオ再生のテストを行う。 スニペットを実行確認するのにいちいちダミーのアプリを作ったりしなくていいのが Playground の便利なところ。 Playground なので言語は Swift まずババッと以下のコードを書いてみる。 オーディ…
Swfit で書いたアプリを配信すると起動時にクラッシュするケースがある。 Apple の以下のドキュメントで言及されている。 原因は証明書で、iOS 8とSwift 登場以後の証明書には 部署 Organizational Unit (OU) が付与されるようになっていて、これが無い証明…
Objective-C では NSString *NSLocalizedString(NSString *key, NSString *comment) NSString *NSLocalizedStringFromTable(NSString *key, NSString *tableName, NSString *comment) NSString *NSLocalizedStringFromTableInBundle(NSString *key, NSString…
Objective-C で NSObject の Class を取得するには class (クラスメソッドとインスタンスメソッド) classForCorder (インスタンスメソッド) classForKeyedArchiver (インスタンスメソッド) classForKeyedUnarchiver (クラスメソッド) などのメソッドがある。…