ObjecTips

Swift & Objective-C で iOS とか macOS とか

Xcode

async/await への自動変換

System Framework以外でも自動変換が行われるケースに遭遇したけど自動変換されるものとされないものの違いが分からなかったので調査。 Xcode 13 Release Notes には以下のように記載がある。 https://developer.apple.com/documentation/xcode-release-note…

SwiftUI でアプリ全体のアクセントカラーを指定する Accent color for the entire SwiftUI app

新規アプリで Xcode のテンプレートからプロジェクトを作成すると Assets.xcassets に AccentColor という名称のカラーアセットが用意されている。これに色を設定するとアプリ全体の AccentColor として反映される。 import SwiftUI struct ContentView: Vie…

Xcode 11 で iOS 14 Simulator を使用する

Xcode 12 への移行はまだ先の予定だけど取り敢えず iOS 14 で動作確認・修正作業をしたいなんてケースがある。 そこでタイトルの「Xcode 11 で iOS 14 Simulator を使用する」これができるらしい。 stackoverflow.com 手順 Xcode 12 付属の iOS Simulator を…

既存プロジェクトで SwiftUI のプレビュー機能を使う Using SwiftUI preview in existing project

WWDC 2019 Session 233 Mastering Xcode Previews https://developer.apple.com/videos/play/wwdc2019/233/ を見ていて、あれ、これもしかして Deployement Targe iOS 13以降のプロジェクトじゃなくても SwiftUI のプレビュー表示は使えるんじゃない?と思っ…

Xcode 11 の変更点

気になるところだけざっくり Xcode 11 Beta Release Notes | Apple Developer Documentation New Features SwiftUI(書くまでもなく) Application Loader が Xcode に同梱されなくなった Asset Catalog Asset Catalog でキーボードショートカットでのコピペ…

IBSegueAction の使い方

Xcode 11から IBSegueAction が追加された。利用可能なOSは iOS 13, macOS 10.15以降 この新機能は Segue で接続し呼び出す ViewController への必須パラメータ渡しの点でメリットがある。 既存実装 prepare(for:sender:) だと func prepare(for segue: UISt…

This app could not be installed at this time. のエラー対応

Xcode + iOS Simulator ででたまに遭遇するアプリが起動しない以下のエラー。 This app could not be installed at this time. クリーンビルドするとか Xcode や Mac を再起動するなどいくつか紹介されているけど他の方法も見つけたので1つの解決の例として…

Swift の enum の型の明記とビルド速度

調査の動機 Swift って結構省略して書けるけどその分 Xcode が脳内補完するからビルドが遅くなるんじゃないの? だったら省略表記無しでコードが長くなってもビルド速度が早い方がいい。 エビデンスが無いので一応確認してみよう。 ビルド環境 ビルド環境 本…

Objective-C と Swift の App Store 配布時のファイルサイズの違い

概要 元々 Objective-C のみで作られたアプリでライブラリに Firebase と自前の Objective-C Framework を複数含む。 これに Swift クラスを3つ(3ファイル)追加しアーカイブしたものを iTunes Connect にアップロードして「App Store ファイルのサイズ」か…

Xcode プロジェクトの watchOS 1 から watchOS 2 への移行

watchOS 1 から watchOS 2 への移行は、Xcode のプロジェクトを選択して Editor > Validate Settings... を選択して Xcode にお任せてプロジェクト更新するのが良い。 でもなぜかこの時に watchOS の移行についての項目が出てこなくてプロジェクトがうまくア…

iOS 8.0.2 iPad で Could not load NIB in bundle

クラッシュレポートにいくつか Could not load NIB in bundle のエラーが上がってきていたので調べてみた。 発生しているのはいずれも iOS 8.0.2 で機種は iPad Air, iPad mini 2 が確認された。 アプリ自体は iPhone のみ対応しているアプリで、iPhone では…

Xcode の Fonts & Colors その2

これの続き Xcode の Fonts & Colors - ObjecTips Xcode の Fonts & Colors の設定画面にプリインストールされているテーマファイルは plist形式の .xccolortheme ファイルで、以下の場所に内蔵されている。 /Applications/Xcode.app/Contents/OtherFramewor…

Xcode の Fonts & Colors

Xcode の Fonts & Colors の設定一覧を調べた 太字のところが色とフォントの設定が反映される箇所 Source Editor 適用箇所の例 Plain Text メソッド名、ファンクション名、クラス定義など- (void)method;void func();@interface MyObject : NSObject@impleme…

Xcode の不可視文字 (Invisible Characters)

Xcode に限らず、エディタで空白の whitespace を表示するオプションがある。 Xcode の場合、メニューの Editor > Show Invisibles から設定可能。 この時表示されるこれ ␣ をUnicode表で調べたみたところ OPEN BOX Unicode U+2423 UTF-8 E2 90 A3 というや…