0

「古い」コード (それほど古いものではありませんが、開発者が去ったので、彼のコードを文書化してレビューしています) をレビューしていたとき、iOS 共有拡張機能のコンテキストで、次の 2 行を見つけました。

let content = self.extensionContext!.inputItems[0] as! NSExtensionItem
for attachment in content.attachments as! [NSItemProvider] {

最初の行: 私はドキュメントを赤くし、inputItems空の可能性もあることがわかったので、このことが発生した場合、強制キャストはアプリをクラッシュさせると思います (正確な方法はわかりませんが、可能性があるかもしれません)。

2 行目: 上記と同じですが、1 行目にクラッシュがない場合、ここにもクラッシュがない可能性が高いという違いがあります。

inputItems質問 1:ループの前の長さを確認するのは良い考えですか?

質問 2: このコードを少し編集し、最初の行を次のように変更しました。

let content = self.extensionContext!.inputItems[0] as? NSExtensionItem

その後、XCode は、私があまり好きではない 2 行目の修正を提案します (私はそれが判読できないと考えています)。

for attachment in (content?.attachments as? [NSItemProvider])!

XCodeの提案は進むべき道ですか?

どんなコメントでも大歓迎です。ありがとう!

4

2 に答える 2