swift
UIViewControllerのdesignated initializerは「initWithNibName:bundle:」なのでこれをcallしないといけない。 Xibから読み込みたくない場合はnilを渡せばいい。以下のような感じ。 init() { super.init(nibName: nil, bundle: nil) }参考:ios - Why can't …
ObjCでのメソッドコメントは@param fooのように書いていたが、swiftでは:param:のように書くとXCodeがアノテーションとして認識してくれるらしい。 XCode6にはreStructuredTextというMarkDownのような記法のパーサが含まれているらしいけど、reStructuredTex…
mikeash.com: Friday Q&A 2014-06-20: Interesting Swift Featuresに書いてあったんだけど、「As a bonus, it should be more efficient as well, since structs can potentially be allocated inline rather than requiring allocation on the heap.」らし…
hosokawa0825/THLoadXibView · GitHubを使ってswiftでViewクラスを定義した。 継承構造は以下。 UIView > THLoadXibView > MySwiftView ObjC側コードで以下のようにしてMySwiftViewインスタンスを作ると、実行時型もMySwiftViewになる。 MySwiftView *v = [[…
実行環境:XCode6-Beta4 swiftで定義したクラスには実行時に以下のルールでPrefixが付く。 _TtC<targetNameのutf16count><targetName><クラス名の文字数><クラス名>なので、THClassはNSStringFromClassでクラス名を文字列にすると_TtC5TName6THClass…
今やってるプロジェクトでは以下の規約を使っている。 ・Viewクラスとそれに対応するXIBファイルは同じ名前にする ・Viewクラスのインスタンスを作る時にXIBファイル名を指定しなければViewクラスと同じ名前のXIBからインスタンスを作る しかし、swiftで定義…
エラーメッセージの通り、super.initを呼ぶ前にすべてのプロパティを初期化してないといけない。 でもsuper.initしないとbaseクラスのメソッドが使えないので、UIViewControllerのサブクラスのイニシャライザは以下のようになる。 init() { self.homeViewCon…
以下のように、delegateに代入するとエラーになる。 self.urlDownloader?.delegate = self以下のようにunwrapすると直る。 self.urlDownloader!.delegate = self以下のサイトの記事ではこの原因は「self.urlDownloader?を評価した結果、nilになることがある…
Objcで定義したクラスをswiftで使う場合、Bridging-Header.hにimport文を書かないといけない。 それは書いているのだが、なぜか以下のようにIBOutletの型として定義しているところで「use of undeclared type・・・」エラーが発生し困った。 @IBOutlet var t…