質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

3回答

1363閲覧

【swift】PDFの表示について

iphonex

総合スコア30

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2022/02/05 07:38

簡易的なviewerを作ろうとしたのですが、エラーがでて実行できません。
何が原因でしょうか。
ネットでも調べたのですが、mainのカスタムクラスの名称もViewContorollerになってます。

コードは以下の以下の通りです。
イメージ説明

エラーは、以下の通りです。
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

※前のコメントでマークダウンが効かなかったのでこちらに再掲します。

swift

1if let documentURL = Bundle.main.url(forResource: "Read", withExtension: "pdf") { 2 if let document = PDFDocument(url: documentURL) { 3 pdfView.document = document 4 } 5 else { 6 print("PDFDocument(url: documentURL)がnilです" 7 } 8} 9else { 10 print("Bundle.main.url(forResource: "Read", withExtension: "pdf")がnilです") 11}

投稿2022/02/05 09:09

編集2022/02/05 09:10
chitomo

総合スコア68

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chitomo

2022/02/05 09:22

失礼、xg63ex2bさんによる回答が当たっている気がします!
guest

0

ベストアンサー

次の記事なども参考にしながら再現確認してみました。

https://re-engines.com/2018/07/17/swiftpdfkitでpdfの表示/
https://dev.classmethod.jp/articles/ios-11-pdfkit/

Xcodeのバージョンによって設定する場所が変わっているようで苦労しました・・

MainのStoryboardのPdf ViewのClassがPDFViewになっていないと再現しました。
リストから選択できなかったため直接入力したら解消できました。

2022-02-05 17:30:23.428692+0900 TestPdf[10475:7115549] -[UIView setDocument:]: unrecognized selector sent to instance 0x13070a550 2022-02-05 17:30:23.449412+0900 TestPdf[10475:7115549] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setDocument:]: unrecognized selector sent to instance 0x13070a550'

イメージ説明


PDFのパスを存在しないものに変更するとエラーが表示されず、空っぽの画面が表示されるところも再現されました。
最初のReadのままでOKかもしれません(画面上で見えないだけで、変更しようとすると.pdfがついているようでした)。

投稿2022/02/05 09:04

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

iphonex

2022/02/05 09:24

ありがとうございます。MainのStoryboardのPdf ViewのClassに「PDFView」と入力し、 参照ファイルの拡張子を削ったら、表示されました。
guest

0

iphonexさんが開こうとしているReadというファイルに拡張子が付いてないのが怪しいです。

Read.pdfにリネームしてみたらどうでしょうか?

投稿2022/02/05 07:58

chitomo

総合スコア68

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

iphonex

2022/02/05 08:14

早速の回答ありがとうございます。エラー消えましたが、viewに何も表示されません。 ファイルパスがおかしいのでしょうか?
chitomo

2022/02/05 08:21

オプショナルバインディングでnilが返ってきていたりしませんか? if文にelse分岐を追記してnilチェックを一度試してみてください。
iphonex

2022/02/05 09:01

たびたびすみません。どうやってnilチェックすればいいでしょうか
chitomo

2022/02/05 09:08

既存のif文にelseの分岐を加えるだけです。 自己流で恐縮ですが下記のような感じです。 ``` if let documentURL = Bundle.main.url(forResource: "Read", withExtension: "pdf") { if let document = PDFDocument(url: documentURL) { pdfView.document = document } else { print("PDFDocument(url: documentURL)がnilです" } } else { print("Bundle.main.url(forResource: "Read", withExtension: "pdf")がnilです") } ``` これでnilが返ってきていると分かったらpdfファイルに問題がないか再確認してみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問