Should I always release self for failed init methods? - Stack Overflow
initメソッド内でエラーが起きた時の対処。self を release して nil を返すのが良いとのこと。
Mac Dev Center にその解説がある。
- (id)init{ self = [super init]; if(self) { // do some init stuff if (somethingFailed) { [self release] self = nil; } } return self; }
Handling Initialization Failure
In general, if there is a problem during an initialization method, you should call[self release]
and returnnil
.There are two main consequences of this policy:
Any object (whether your own class, a subclass, or an external caller) that receives anil
from an initializer method should be able to deal with it. In the unlikely case where the caller has established any external references to the object before the call, this includes undoing any connections.
You must make sure thatdealloc
methods are safe in presence of partially-initialized objects.
Getting the time elapsed (Objective-c) - Stack Overflow
経過時間の計測
シンプルでいい。
NSDate *start = [NSDate date]; // do stuff... NSTimeInterval timeInterval = [start timeIntervalSinceNow];
How To Chose The Best XML Parser for Your iPhone Project
iPhone情報だが、XML Parser の比較記事。NSXML, libxml2 をはじめ、TBXML, TouchXML, KissXML など多くのパーサーについての比較がある。XMLPerformance Test App なるものがあるのか。
グラフを見ると速度とメモリ利用率で TBXML というパーサーが良さそう。
最後に用途別にどのパーサーを選ぶと良いかが掲載されている。
read small XML documents => TouchXML, KissXML, GDataXML
read and write samll XML documets => KissXML, GDataXML
read extremely large XML documents => libxml2 SAX, TBXML, libxml DOM
QuickDrawはどのように素早く円を描いていたのか? - ザリガニが見ていた...。
円を描くアルゴリズムの解説あり。面白い。