Objective-C accessor declarations (readonly, readwrite, etc) - Stack Overflow
プロパティを外部には readonly として公開し、クラス内部では readwrite として使う方法が紹介されていた。
以下、コードを引用する。
なるほどカテゴリを使うのか。in the book, "Cocoa Design Patterns," the author sometimes declares a property in the @interface as readonly:
// .h @property (readonly, copy) NSArray *shapesInOrderBackToFront;
and then later adds an unnamed category to the implementation (.m) file like this:
// .m @interface MYShapeEditorDocument () @property (readwrite, copy) NSArray *shapesInOrderBackToFront; @end
Creating an IMP from an Objective-C block - Stack Overflow
block と IMP 間の変換についての話題。
質問者は Objective-C で F-Script/Smalltalk 相当のブロックの記述について取り組んでいる。
A new metaclass for Objective-C
※以下、このサイトからの引用
例えば F-Script でこんなコードがあったとする。内容はクラスを動的に定義し、最後にそれをインスタンス化して呼び出すというもの。
これを Objective-C で書けるようにコードを作り、最終的にはこんなコードになった。Dog := FSClass newClass:'Dog'. Dog addProperty:'name'. Dog addProperty:'breed'. Dog onClassMessage:#dogWithBreed: do:[ :self :breed | |instance| instance := self alloc init. instance setBreed:breed. instance ]. Dog addClassProperty:'kingdom' withValue:'Animalia'. Dog onMessage:#bark do:[ :self | stdout print:'Yipe!' ]. pet := Dog dogWithBreed:'Aussie'. pet setName:'Tucker'. pet bark.
これは面白い。JSClass *Dog = [JSClass newClass:@"Dog" parent:[NSObject class] properties:[NSArray arrayWithObjects:@"name",@"breed",nil]]; [Dog onClassMessage:@selector(dogWithBreed:) do:^(id Self, NSString *breed) { id instance = [[Self alloc] init]; [instance setBreed:breed]; return [instance autorelease]; }]; [Dog addClassProperty:@"kingdom" withValue:@"Animalia"]; [Dog onMessage:@selector(bark) do:^(id _self) { NSLog(@"Yipe!"); }]; id pet = [Dog dogWithBreed:@"Aussie"]; [pet setName:@"Tucker"]; [pet bark];
F-Script Home
Keychain Services
Keychain の利用を考えていて少ししらべてみた。iPhoneで使えるとは知らなかった。
Mac Dev Center: Keychain Services Programming Guide: Introduction
Mac Dev Center: Keychain Services Reference
CocoaDev: KeyChain
cocoaでの keychain プログラミングサンプル。参考になる。
http://homepage.mac.com/agerson/examples/keychain/
ラッパーライブラリ
Extendmac — EMKeychain