Swift

Swift:Xcode8.3.3への変換

MesaExifをXcode8.3.3にコンバージョンしています。

ソースコードが古いせいか、To current Swift syntaxが使えません。それで力づくでやりました。

1. .xibを.storyboardにつもりで進めたのですが、うまくいきません。storyboardを削除しただけでは、これが消えてなくなりません。.plistからも削除する必要がありました。

Screenshot 2017-07-01 13.43.06

2. なお、.xibを取り込むには、次のwindowの選択が必要です。新規作成後に、元々の.xibファイルでこの新規ファイルを置き換えればレイアウトとリンクを再設定しないですみます。ただし、IBAction関係のリンクは最新のものになっていなかったので接続し直す必要がありました。

Screenshot 2017-07-01 13.51.22

3. NSMutableArrayへの初期値設定がうまく入らなかったので、

var edCGI:NSMutableArray = []として定義し、プログラムで値を設定することにしました。なぜこんなことになるのかは、原因不明です。

inx = 0
eCGI[inx] = [211,   12, 151,  “😎”, “”, [], “Latitude/Longitude”, “緯度・経度”, “”, []]//hk対訳調整

inx += 1
eCGI[inx] = [211,   0,  151,  “⛔️”, “”, [], “ColorModel”, “色空間”, “”, []]

4. 表の行数の表現を変える必要がありました。これは古いもの(上側)がエラーにならないので、結構、わかりにくいでした。

  • func numberOfRowsInTableView(aTableView: NSTableView) -> Int
  • func numberOfRows(in tableView: NSTableView) -> Int

5. 表に関して、もう2点ありました。

  • func tableView(aTableView:  NSTableView, setObjectValue anObject: AnyObject?,forTableColumn aTableColumn: NSTableColumn?, row rowIndex: Int)
  • func tableView(_ tableView: NSTableView, setObjectValue object: Any?, for tableColumn: NSTableColumn?, row: Int)
  • func tableViewSelectionDidChange(aNotification: NSNotification)
  • func tableViewSelectionDidChange(_ notification: Notification)

6. その他の変換は、いつもの通りでした。膨大な行数を書き換えましたが、作業自体は機械的でした。とりあえず動くようになったので、ホッとしています。

Categories: Swift, 技術

Tagged as: