技術ブログ

プログラミング、IT関連の記事中心

Swift

Apple Silicon (M1) の pod installできない問題の修正、pod installの方法

目次 エラーの内容 M1 Macでのpod install方法 エラーの内容 M1 Macにて、pod installを実行した際に、以下のエラーが発生します。 firebase_core: Using Firebase SDK version '9.5.0' defined in 'firebase_core' [!] CocoaPods could not find compatible…

Swift UIViewやUIImageViewではみ出した部分を表示しない方法

目次 UIViewやUIImageViewではみ出した部分を表示しない方法 UIViewやUIImageViewではみ出した部分を表示しない方法 UIViewやUIImageViewのframeで設定しているサイズを超えた画像やViewなどがaddされている場合、はみ出してしまいます。 以下の定義を追加す…

Swift 文字列の一番後ろを削除する方法、後ろから任意の文字数を削除する方法

目次 文字列の一番後ろを削除する方法 後ろから任意の文字数を削除する方法 文字列の一番後ろを削除する方法 以下のように、「removeLast」を使用することで、一番後ろの文字を削除することができます。 let str = "HogeHoge1" str.removeLast(1) print(str)…

Swift iOS15でUIApplication.shared.keyWindowの取得方法

目次 iOS13までの取得方法 iOS13からiOS15までの取得方法 iOS15以降での取得方法 iOS13までの取得方法 iOS13までは以下で取得することができました。 UIApplication.shared.keyWindow iOS13からiOS15までの取得方法 iOS13からiOS15までは以下で取得すること…

Xcode(Swift、Objective-C)でSVGを使用する方法

目次 アセットの定義 アセットの定義 Xcodeのプロジェクト内にて、「Assets」を開き、「Image Set」を追加します。 追加したImage Setにて、以下設定を行います。 ・「Resizing」の「Preserve Vector Data」 にチェックを入れる。 ・「Scales」を「Single Sc…

Swift CollectionViewで最下部に余白を設定する方法

目次 説明 実装 説明 CollectionViewの下ではなく、セルがスクロールした後の一番したに余白を設定する方法を記載します。 実装 以下のソースコードは、CollectionViewのインスタンスが「collectionView」という前提です。 40pxの余白を設定しています。 col…

SwiftでUIScrollViewの横のスクロールバーを表示しない方法

目次 ソースコードでUIScrollViewの横のスクロールバーを表示しない方法 StoryboardでUIScrollViewの横のスクロールバーを表示しない方法 ソースコードでUIScrollViewの横のスクロールバーを表示しない方法 以下のソースコードを記載することで、UIScrollVie…

SwiftでUIScrollViewの縦のスクロールバーを表示しない方法

目次 ソースコードでUIScrollViewの縦のスクロールバーを表示しない方法 StoryboardでUIScrollViewの縦のスクロールバーを表示しない方法 ソースコードでUIScrollViewの縦のスクロールバーを表示しない方法 以下のソースコードを記載することで、UIScrollVie…

SwiftでUITableViewをスクロールしない様にする方法

目次 ソースコードでUITableViewをスクロールしない様にする方法 StoryboardでUITableViewをスクロールしない様にする方法 ソースコードでUITableViewをスクロールしない様にする方法 以下のソースコードを記載することで、UITableViewをスクロールしない様…

Swiftのエラー「Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier cell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'」の対応方法

目次 エラー 原因 対応方法 エラー StoryboardでTableViewを作成すると、アプリ起動時に以下の様なエラーが表示されることがあります。 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell …

pod installで[!] Your project does not explicitly specify the CocoaPods master specs repo. Since CDN is now used as the default, you may safely remove it from your repos directory via `pod repo remove master`. To suppress this warning please add `warn_for_

目次 警告メッセージ 対応方法 警告メッセージ 以下のコマンドを実行した際に pod install 以下のような警告が発生する場合があります。 [!] Your project does not explicitly specify the CocoaPods master specs repo. Since CDN is now used as the defa…

carthage updateでXXX have the same architectures (arm64) and can't be in the same fat output fileが発生した場合

目次 エラー発生の状況 対応方法 エラー発生の状況 以下のコマンドを実行した際に carthage update 以下のようなエラーが発生する場合があります。 ※XXXはライブラリ名になります。 XXX have the same architectures (arm64) and can't be in the same fat o…

Swiftのswitch文中のreturnの挙動に関して

目次 switch文中のreturnの挙動 switch文中のreturnの挙動 以下の様なソースコードをPlaygroundで作成して実行します。 class aaa { func hoge() { let tp = 1 let hoge = 1 switch tp { case 1: print("===========1") if hoge == 1 { print("===========2"…

Swiftでソースコードでホーム画面に戻る処理(URLSessionTask.suspend)

目次 ホーム画面に戻る方法 ホーム画面に戻してからアプリ終了 ホーム画面に戻る方法 以下の処理を行うことで、アプリ起動中にソースコードでホーム画面に戻す事が可能です。 UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.…

Swiftでアプリの終了処理を行う方法(exit)

目次 アプリの終了方法 審査に関して アプリの終了方法 以下の処理を行う事で、アプリを終了させる事ができます。 exit(0) 審査に関して いくつかの記事などで、この方法はリジェクトされるなどの情報がございます。 しかし、Appleから明言されておらず、リ…

iOSのBetaを検証チームに渡す方法

目次 はじめに Betaを渡す方法 検証チームがBetaをインストールする方法 はじめに 開発者は、Apple Developer Programに加入しているが、検証チームは加入していないという状況を想定しています。 Betaを渡す方法 以下のURLにアクセスします。 developer.app…

SwiftでUINavigationBarの色が設定されなくなった場合、下線を非表示にしたい場合(iOS15以上)

目次 今までの記述 iOS15以降の背景色設定 iOS15以降の下線非表示 iOS15以降のソースコードまとめ 今までの記述 UINavigationControllerの背景色、文字色、下線非表示の今までのソースコードは以下です。 public class func setNavigationController(vc: UIV…

Swiftの広告パーミッション確認の表示方法(AppTrackingTransparency)

目次 AppTrackingTransparencyとは 「Info.plist」の設定 広告パーミッション確認の表示方法 iOS14以前をサポートする場合 広告表示処理周りのサンプル AppTrackingTransparencyとは Appleの公式サイトより引用 新規App、および既存Appのアップデートを提出…

TextFieldに英数記号のキーボードのみを表示する方法【Swift】

■はじめに ここでは、以下の要望への対応方法を記載します。 TextFieldにフォーカスを当てた時のキーボードを、英数記号のみにして欲しいユーザーの設定関係なく、英数記号のキーボードにして欲しい。キーボードの切り替えを許さないで欲しいパスワード入力…

SQLite3でINSERT時にPrepared Statementを複数使用する方法【Swift】

■はじめに 以下のサイトを参考に、SQLite3は使用できるようにしておいてください。(基本的なことは飛ばして説明します。) reigle.info ■手順 まずは、ソースコードの全量は以下 func insert() { var stmt: OpaquePointer? let queryString = "INSERT INTO …

キーチェーンの共通クラスの作成【Swift】

■はじめに ライブラリは使用しないで、キーチェーンを使用する共通処理を記載します。 なるべく保守性の高いクラスにしようとして作成しました。 (今後、修正するかも。。。) あくまで、参考までに。 ■手順 「KeyChain.swift」クラスを作成する。 以下を丸…

スプラッシュのViewを取得する方法【Swift】

■はじめに 以下のようにスプラッシュのViewを取得したい場合があります。(たまに) スプラッシュ表示後も一定時間スプラッシュを表示したい特定の画面でローディングダイアログなどの代わりにスプラッシュを表示したい(裏で画面遷移するなど) その場合に…

UserDefaultsの処理をまとめて保守性が高いUserDefaultsの書き方【Swift】

■はじめに UserDefaultsの処理を保守性を高く記載しようと思って、色々と試行錯誤しました。 ここで紹介する方法は一例ですので、参考にしてください。 (Keyを定数クラスで管理するなども考えましたが、保守するクラスが増えるだけでしたので断念。) ■手順…

「kCBAdvDataManufacturerData」の操作【Swift】

■はじめに Bluetoothで「kCBAdvDataManufacturerData」の値を取得してどうのこうのしたい時があります。 その方法で結構詰まったので、メモ。 スポンサードリンク (adsbygoogle = window.adsbygoogle || []).push({}); ■手順 「kCBAdvDataManufacturerData」…

ライブラリを使用せずにJWT(JSON Web Token)をデコードする方法【Swift】

■はじめに APIなどでJWTを取得する事があります。 その際にそのJWTをデコードして値を操作する必要があるので、ここでは「ライブラリを使用せずに」JWTをデコードする方法を記載します。 ※ライブラリ使ってはいけないプロジェクトもあるので。。。 ■手順 以…

APIKitのサンプル(郵便番号検索)【Swift】

■はじめに ここでは、「APIKit」というライブラリのサンプルを記載します。 APIKitの詳細に関しては、GitHub(https://github.com/ishkawa/APIKit)を参照してください。 APIKitの詳細を簡単に説明すると、タイプセーフにAPIを利用するためのライブラリです…

UIButtonの画像のタップ領域を設定する方法【Swift】

■はじめに UIButtonに画像を設定した際に、その画像の領域以上にタップ領域を設定したい場合があります。 (画像を小さくするけど、タップはしやすいようにしたい場合など) その際に、タップ領域を増やす方法を記載します。 ■手順 以下のソースでタップ領域…

Sign In with Appleを実装する方法【Swift】

■はじめに Appleから、Googleログインなどのソーシャルログインを追加する場合にはAppleのソーシャルログインを追加するようにレビューガイドラインが更新されました。 そのため、ここでは、Appleのソーシャルログイン(Sign In with Apple)の実装方法を記…

KeyChainの操作(CRUD)の方法【Swift】

■はじめに アプリ内のデータを保存する際にUserDefaultsなど様々な方法で保存ができます。 ここで紹介するKeyChainへの保存は、データを強固に保存することができます。 また、同じAppleIDを利用する事で別端末へ引き継いだりもできます。 ■手順 KeyChainの…

暗号化と複合化の方法【Swift】

■はじめに パスワード情報など、セキュリティを強固にしたいデータを扱う際に暗号化/複合化を利用することがあります。 ここでは、「CryptoSwift」のライブラリを使用させて頂き、暗号化/複合化を行う方法を記載します。 ■手順 CocoaPodsを使用して、「Crypt…