Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。8.3.3で以下のソースを変換してbuildしたところエラーが発生しました。どのように修正すればよいのでしょうか?【追加】すみません。ヘッダー部分は以下です。個の銅バッジあなたのコードはdrCharというメソッドを定義していますが、その中で呼び出されている同名のdrCharは、別シグニチャーで定義された別メソッドのようです。そちらの宣言(関数定義のヘッダー部分)はわかりますでしょうか。正しい変換のためにはそちらの情報が必要となります。追加情報は質問文を編集して追記してください。編集ボタンから編集することが出来ます。コメントには直接記載せず追記した旨を知らせる場合にコメントしてください。8:37@Myaku質問文を編集しました。ご指摘ありがとうございます。9:08コメント・【追加】では大文字スタートのDrCharとなっていますが、元コードは小文字スタートのdrCharで呼び出しているので、とりあえず後者のつもりで回答しておきました。3では、「Swift2まではポインター型の変換が簡単すぎた」という反省のもと、いくつかのイニシャライザが廃止になっており、単純な置き換え用のメソッドが用意されていないこともあって、Migratorでもうまく変換できないことが多いようです。UnsafePointer(配列)やUnsafeMutablePointer(&配列)と言う書き方は大変危険なもので、特定の条件で動いているように見えても、ちょっとしたことで全く意図しない動作になってしまうことがあります。コンパイルが通る場合でも、ただちに修正していただいた方が良いでしょう。配列(の先頭要素)へのポインターを取り出す呼び出し先の引数型に合わせてそのデータ型を変換すると言う2種類のことをUnsafeMutablePointer<Int8>のイニシャライザで同時に実現していました。3では、それぞれ別々に行う必要があるので、少々面倒なことになります。配列(の先頭要素)へのポインターを取り出す⇒配列のwithUnsafeMutableBufferPointer(_:)またはwithUnsafeBufferPointer(_:)を呼び出す呼び出し先の引数型に合わせてそのポインターのデータ型を変換する⇒ポインターのwithMemoryRebound(to:capacity:_)を呼び出す元の構造をできるだけ保つように書き直すと、こんな感じになります。retValue}なお、最終的にUnsafeMutablePointerにしないといけないので、immutableなパラメータのstrBufを直接使うことはせず、mutableとなるようvarにコピーしています。Swiftっぽく書くとこんな感じになるでしょうか。retValue}少々面倒に見えるかもしれませんが、今現在判明しているSwiftやSwift標準ライブラリーの仕様に合わせて危険な使い方は一切しないようになっています。※「正しくは大文字で呼び出していました」のコメントをいただいたので、「ヘッダー部分は以下です」の内容通り、呼び出される側をDrCharに修正しました。※DrCharが内部で引数のポインターを保存して後々も再利用するような場合には、もっと大規模な修正が必要になります。3ではポインターの取り扱いに大きな変更がありましたので、そのようなライブラリーを多用していると大変かもしれません。ご質問のコードに直接関係ある事柄はこの回答へのコメントとしてお知らせ下さい。別のコードでうまくいかない部分がある場合には別のご質問としてご投稿くださるようお願いします。(もうじきXcode9の正式版も例年通りの時期に登場しそうです。Xcode9には、Swift2.xからの移行ツールは含まれませんので、要移行のプロジェクトが他にもあるのでしたら、急がれた方が良いでしょう。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。