2013-03-01から1ヶ月間の記事一覧
・DBに保存したくないオブジェクト用のコンテキストを作り、それ経由でオブジェクトを作ったり、データをDBから取得したりする。 CoreDataでは異なるコンテキストから取得したオブジェクトへの参照を持つことができないので困ることがある。 例えばPerson→Fa…
OSXアプリの場合、以下のようにすればXIBからインスタンスが作れる。 - (id)init { NSWindowController *windowController = [[NSWindowController alloc] initWithWindowNibName:@"RateListWindow"]; self = windowController.window; if (self) { ・・・ }…
windowDidResignKeyが呼ばれなくて困ったという話。 NSWindowのサブクラスで↓のようにself.delegate = selfとしてNSWindowDelegateのメソッドを自分で処理しようとしたがdelegateメソッドが全然呼ばれない。 - (id)initWithContentRect:(NSRect)contentRect …
@interfaceにProtocolをつけたらcannot find protocol declaration forというビルドエラーが出た。 ちゃんとプロトコルを宣言しているヘッダファイルはインポートしてるのに。。 実はヘッダの循環参照が生じているとこのエラーが出るらしい。メッセージわか…
[NSApp activateIgnoringOtherApps:YES];参考:cocoa - How to bring NSWindow to front and to the current Space? - Stack Overflow
weak参照にすることを禁止する方法があるらしく、禁止されているクラスのオブジェクトにWeak参照したら実行時エラーが出る。知らなかった。。 NSWindowControllerはWeak参照が禁止されているので、Weakの代わりにunsafe_unretainedを使う。 参考:http://tak…
エンティティのプロパティのClassにクラス名が入力されていないと クラスが生成されない。
ソース一式を落としてきてXCodeでビルドしてできたバイナリを使えば出なくなる。 参考:Seg fault while processing model · Issue #121 · rentzsch/mogenerator · GitHub
viewのframeの操作などを簡単にしてくれるライブラリ。 これ便利そうだけどMacでは使えないっぽかった。。iOSの開発で使ってみたい。 nicklockwood/ViewUtils · GitHub
cocoa - NSTableView - Disable Row Selection - Stack Overflow
この記事のコードをコピって多少修正したらできた。 objective c - Implementing drag and drop in NSTableView - Stack Overflow ポイントは以下。 ・ドラッグアンドドロップはクリップボード経由でデータを受け渡しする ・データタイプをregisterForDragge…
NSPreferencePaneを継承したクラスを作って環境設定画面を持ったアプリを作ろうとしたら、以下のコンパイルエラーが出た。 _OBJC_CLASS_$_NSPreferencePane", referenced from _OBJC_METACLASS_$_PreferencePane in PreferencePane.oこれはNSPreferencePane…
以下のようなコンパイルエラーが出た。 warning: directory not found for option '-F/Applications/Xcode4.6.app/Contents/Developer/Library/Frameworks'これはFramework Search PathなどのSearch Pathが存在しないことが原因。存在しないパスを削除すれば…
ARCを使っている場合は--template-var arc=trueを付けないといけないので注意。 mogenerator -m Sample/Sample.xcdatamodeld/Sample.xcdatamodel/ -O Sample/Models/ --template-var arc=true 参考:MagicalRecord 2.0がリリース | Technology-Gym
CoreDataのデータモデルエディタにfetchedPropertyという項目がある。 これはここで検索条件を設定してfindメソッドを作れるよ、というものっぽい。 http://blog.natsuapps.com/2010/02/core-data-12.html
NSManagedObjectのプロパティはintを保持する場合はNSIntegerでなくNSNumber型にしないといけない。 でないとプロパティに値を代入した時にBadAccessになる。
Core Data Editorというソフトがよさげな感じ。有料だけど、ちょっと試してみたい。OSX10.8以上でないと動かないのが痛いが。。 Christian Kienle
macアプリからCoreDataのデータを保存した場合、以下の場所にデータファイルが保存される。 ~/Library/Application Support/*YourAppName*/database.db iOSアプリの場合とちょっと違う。cocoa - OSX: Where to store SQLite file for application? - Stack O…
CoreDataを使っていて、アプリインストール時にDBにマスタデータを保存したい場合、ベストプラクティスはCoreData経由でデータを保存するコードを書くことらしい。 CoreDataが生成するデータは色々依存関係があったりするので自分でSQLを実行したりして直接…
subviewのautoresizingMaskでTopMarginを固定にしてるのにマージンがなぜか変化する。。ということがあった。 原因はframeのsizeを0近くから広げるアニメーションをしていたため、アニメーション中のsubviewのframeの計算結果が丸め誤差等の影響でおかしくな…
AppCodeの機能でDashと連携してメソッドの使い方とかを検索出来る機能がある。 今まで使ってなかったけど、超便利で感動しました。ノータイムでDashに課金した。 いい点は以下。 ・公式ドキュメントをローカルで検索するので動作が超速い ・Google、StackOve…
最近Macアプリを作り始めたけど、iOSアプリとの違いに戸惑い中。 とりあえずハマった点は以下。 ・NSViewがUIViewとだいぶ違う。機能が少ない。 ・backgroundColorを設定できない。これは独自クラスのdrawRectで塗りつぶしを実装してbackgroundColorを使える…
以下のようにする。iOSの場合とちょっと違うので注意。 - (id)init { NSNib *nib = [[NSNib alloc] initWithNibNamed:@"View" bundle:nil]; NSArray *topLevelObjects; if ([nib instantiateNibWithOwner:self topLevelObjects:&topLevelObjects]) { for (NS…
以下のエラーが出た。 The document "Example.xib" could not be opened. The operation couldn’t be completed. Two members of the document have the object ID 50. This may have happened through an external edit, such as an SCM merge operation.エ…
containsObjectはNSArrayの要素のisEqualメソッドを使って同じオブジェクトかどうかを判定しているので、例えばNSNumberオブジェクトが要素の場合は正しく判定できない。具体的には以下のように想定と違う動作になる。 NSArray *ary = @[@1]; [ary containsO…
突然以下のエラーが出てアプリを起動できなくなった。 dyld: Library not loaded: @rpath/SenTestingKit.framework/Versions/A/SenTestingKit Referenced from: /Users//Library/Developer/Xcode/DerivedData/-dlkipdukwbgyedhizqyoycxnbqrf/Build/Products/…
pod installを実行すると以下のようなエラーが出た。 ### Report * What did you do? * What did you expect to happen? * What happened instead? ### Stack ``` CocoaPods : 0.17.2 Ruby : ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin11.0]…
秀丸ファイラを使ってコピー使用とするとエラーになったが、 エクスプローラからは普通にコピーできた。なぜ。。
以下のコマンドを実行すると調べられる。 xcrun -sdk iphoneos lipo -info Product/libJSONKit.a参考:http://blog.ishkawa.org/blog/2013/01/28/universal-static-library-2013/
よく半角記号・半角文字などと言うが、 文字コードによってある文字が1バイト文字かマルチバイト文字かが変わるので、仕様を「半角記号は入力可」のように決めると後でトラブルの元になる。 例えば、「\」はShiftJISでは1バイトだが、UTF8では2バイト。 半角…