Day: September 8, 2014

Swift:FileNodeの初期化をサンプルプログラムで確認中

FileNodeの初期化がおかしいことがわかったので、サンプルプログラムで確認中です。

サンプルプログラムの構成

  • AppDelegateをSwiftで作成。FileNode/ CustomCellをObj.Cのまま利用。
  • 確かに、この時点でうまくいっていない。全部で5行くらいなのですが。

少しわかってきたこと

  • rootは、var root:FileNode? = nilとしないといけないようだ。var root:FileNode? =FileNode()ではObj.CのinitiWithPathメソッドに行かない。
  • self.root = [[FileNode alloc] initWithPath:wFilePath]; は、root = FileNode(path: wPath)と書く。この書き方は、Obj.CのinitWithPathをSwiftの書き方に直すやり方に準じる。
  • CustomCellのイニシャライズは[outlineColumn setDataCell:[[CustomCell alloc] init]のようになっているが、Swiftでは、@IBOutlet var outlineColumn:NSTableColumn?として、outlineColumn = nilとnilを入れてみた。
  • 結果は、treeらしきものが化けて表示された。これは、CustomCellのイニシャライズがうまくいっていないせいかもしれない。もしかすると、前進しているかもしれない。そうだったらうれしいけど、ぬか喜びかもしれない。やれやれ。
  • Swift版とObj.C版との違いは、最終的にCustomCellが呼ばれない vs. 呼ばれるの違いというところまで判明。

スクリーンショット 2014-09-08 22.16.13