at_yasu's blog

ロード的なことを

Cocoa

Headerdoc のメモ書き

Headerdoc でリファレンスを作っているのですが、どうも Headerdoc 自体は保守されて色々拡張はされているみたいです。ただ気になるのは、 Apple が配布している SDK に含まれているヘッダーファイルには、なかなか Headerdoc の記述がない件…I/O Kit のファ…

delegateの呼び出しとメモリー管理(合ってるかどうかは知らない)

delegate オブジェクトは大概の場合は保持(retain)しません。retainすると循環参照が起きてメモリーリーク起こしやすくなりますので。じゃあ、delegate先がreleaseされてる場合はというと、メッセージを呼び出せずに逝ってまいはいます。performToSelector: …

CoreDataとMultiThreadのメモ書き(不完全)

いまいち分かってないけどメモ書き*2010/12/14 追加、基本ルールにすこし追記 *2010/12/17 追加、ごにょごにょと。Stackoverflowに書いている事ではこんな感じ。基本ルール NSPersistentStoreCoordinator は唯一にすること 同様に、NSManagedObjectModelも…

メモリ管理と通知

retain、assign、copy、nonatomicについての簡潔な説明 - 強火で進め >retain、assignの違いなどについてまだイマイチ分かってない人はこの資料できちんと理解しておきましょう。 > >何か良く分からないけど何故かアプリが落ちるなんてバグの原因の一つがこ…

insert text for NSTextView from none main thread.

スレッドを作ってそこから、NSTextView にずらずら表示させたいのだけど、どうも一癖あるらしい。 - (void) printmessage:(NSString*)txt { @synchronized(text) { [text performSelector:@selector(insertText:) onThread:[NSThread mainThread] withObject…

NSDate の compare: に関するメモ書き

NSDate の時間を比較する時、compare: を使いますが、NSOrderedSame を返さない気配。 検証プログラム void fn (NSString* sel,NSDate* olddate,NSDate* fndate) { SEL slt = NSSelectorFromString(sel); NSDate* ch = [olddate performSelector:slt withObj…

Fault cannot be fulfilled

今イチ理解してないけど。「NSObjectInaccessibleException Fault cannot be fulfilled 〜」とエラーが出されて何のこっちゃと思ってたら、どうも、NSManagedObject を作成中にクラッシュなどして、commitされずに放置されたエンティティにアクセスした時に…

CoreData Migration ~ Lightweight Migration を使った方法

「CoreData Migration - xcmappingmodel 編」と「CocoaBindingを使って画像管理ソフトを作成」の合わせ技です。なお、「CoreData Migration - xcmappingmodel 編」はサンプルコードすらない旧聞の状態なので、新しいのでも問題ないという人はこちら推奨。ち…

CocoaBindingを使って画像管理ソフトを作成

ちと必要になったのと、復習がてらCoreData + CocoaBindingを使って、画像管理ソフトを作りましたのでそのメモ。 ざっくりしたいこと まんまですが、本タイトルを入力し、既存のファイルをドラッグアンドドロップすると画像が登録されるというシンプルな物で…

削除ルール

CoreDataで、例えばテーブルAとテーブルBを関連(AはRelate, BはRelates、AとBは1対多)付けた時、A側のデータ(Relate)を消したとする。その時に設定されている削除ルールをもとに、出来る事出来ない事のメモ書き。 Deny(拒否) Aを消そうとしても、Bがある場…

NSURLConnection と 500 Server Error

NSURLConnectionのデレゲートにconnection:didFailWithError: がありますが、500番などのサーバエラーなどの時、NSURLConnectionはそのDelegateMethodを呼びません。 困った事に、connection:didReceiveResponse: でステータスコードをチェックする必要があ…

NSURLConnectionとBasic Authentication

NSURLConnectionで基本認証をする方法。一つに、ヘッダーにbase64にしたユーザ名パスワードを入れる方法がありますが、あまりスマートではないし、ドキュメントをちゃんと読んでいないのがバレますので非推奨。して、このドキュメントには NSURLAuthenticati…

保存の際の例外処理

「Operation could not be completed. (Cocoa error 1570.)」でずっとハマってたのでメモ。正常に処理できませんでした(Cocoa error 1570.)としか言われずハマってたのですが、どうやらここを読むとCoreDataの保存の際に起きてるようで。でも何で保存に失…

UIViewController のテンプレ

何か知らないけど、viewWillApperとかのメソッドが無くて不便してるので、ここにメモ投下 /* // The designated initializer. Override to perform setup that is required before the view is loaded. - (id)initWithNibName:(NSString *)nibNameOrNil bund…

NSLocalizedStringと国際化

文字列と国際化の(二年ぶりの)補足。 上記のエントリーでは、長ったらしい方法でやっていますが、もっと簡潔に書きたい場合がありますし、書けたらそれにこした事はありません。で、簡潔に書く方法。 str = NSLocalizedString("Message", "Key"); Message …

コマンドラインで作るAPIリファレンスの作成方法

Objective-Cとして書いています。MacOSXにはDeveloperToolsKitにHeaderdoc2htmlというコマンドが梱包されています。これは、Appleが作成したAPIドキュメントを作るためのコマンドで、C系のコメント(/*..*/)から必要な情報を抜き出して、ドキュメントに仕上…

Is running native CPU ?

自身がロゼッタで動いているか、どうなのかを調べる低レベルな方法。 static int sysctlbyname_with_pid (const char *name, pid_t pid, void *oldp, size_t *oldlenp, void *newp, size_t newlen) { if (pid == 0) { if (sysctlbyname(name, oldp, oldlenp,…

共有インスタンス生成

iPhone Exampleの TheElementsより // we use the singleton approach, one collection for the entire application static PeriodicElements *sharedPeriodicElementsInstance = nil; + (PeriodicElements*)sharedPeriodicElements { @synchronized(self) {…

Haiku-Growl

前回からちょこっとだけアップデートアップデート内容 10.4でも動く……かも?動作未検証だから、自己責任でよろしくお願いします。*1 表示件数を変更できるようにした。 ダウンロードは、http://idisk.mac.com/evelinae-Public?view=webからhaiku-growl v0.0.…

Haiku-Growl

はいくのFollowingを、Growlで通知してみるテスト。通知間隔は五分間。通知したGrowlのパネルをクリックしたらブラウザが開いて、その投稿をブラウザで確認できます。ただ投稿した内容の画像には対応してないので、f:...とかhttp://とかがGrowlには表示され…

NiCocoa 0.0.3.5a

とりあえず、0.0.3.5です。変更点は下記の通り、 Infoパネルのサイズを変えると、表示がずれるバグ修正(match to text field on infomation panel.) 動画のサイズに合わせるメニュー「Fit to movie size」を作成。当たり前ですが動作します。(fix size as…

Rein Rous v0.1

公開です。これは、はてなハイクのAPIを利用して、ユーザのアイコンを取得して、CoreAnimationでごちゃごちゃするだけのソフトです。つまり、私がCore Animationで何かを作りたかっただけなのです。其れ以外の意味はありません。 上に入力フィールドがありま…

Prepare Contents

NSArrayControllerに限った話なのかわからないけど、NibのNSArrayControllerオブジェクトに「Prepare Contents」というチェックボックスがあります。 これは、初期値を自動的に設定するかどうかと言うチェックボックスで、オンにすると自動に設定、オフにす…

CoreData Migration - xcmappingmodel 編 -

先に注意:これはメモ書きです。間違い等や読みにくい等があるけど、ご了承をば。というわけで、CoreDataのDBをソフトウェアで移行する方法です。勿論APIはありまして、http://developer.apple.com/documentation/Cocoa/Conceptual/CoreDataVersioning/Intro…

NiCocoa v0.0.3.4a

というわけで、0.0.3.4aを公開。今回の主な変更点はbug修正。動作条件 Mac OS 10.5以上(10.5.5 ppc で開発&&動作確認済み。Intelマシンでも動くはず・・・) Perian必須 0.0.3.3からの変更点 複数ダウンロードができなかったbug修正。一度に複数登録して、…

NiCocoa v0.0.3.3a

前回のリリースが6月14日なので、約四ヶ月ぶり。本当は先月リリース予定だったんだけど、バグ大杉で修正に一ヶ月かかりました。*1 以前のバージョンからデータベースの変更はないので、そのままアップデートして下されば使えるはずです。 動作条件 Mac OS 10…

NSView on NSCell

できたのでメモ書き あらかじめ、InterfaceBuilderで表示させるTableの横幅と、表示させる中身の横幅を決めておく。なお、表示させる中身とTableは別々のNibファイルにしておく事。 NSCellを継承して、NSViewを保持するような仕組みを持たせる NSTableColumn…

NSView on NSCell

よくSafariやAdiumのダウンロードウィンドウで、ダウンロードファイルの進行状況を表示しているリストがあります。あれはさり気なくややこしくて、NSCellの上にNSViewがある形になっています。それじゃあ、NSCellの意味ねぇじゃんって事なんですけど、実際そ…

NSCollectionのメモ書き

NSCollectionを使えば、このような物ができます。で、こいつのCoreDataとCocoa Bindingのメモ書き。右のwindowは、NiCocoaの開発中の画面。なんだかんだで、いじってたらできたのでこのまま突っ込む予定。検索とか。

NSWindowを閉じたり、開いたり

NSWindow オブジェクトのウィンドウを閉じるには「orderOut:」、開くには「orderFront:」、現在の状態を知るには「isVisible」以上のメソッドを使って、NSWindowを閉じたり開いたりするメソッド「toggleWindow」カテゴリクラスを作ってみる。 ありそうな物だ…