Convenience Constructor


Cats

11:00銀行に到着。30分待たされて通帳を渡される。キャッシュカードは1週間から10日後に郵送されるとのこと。

コンビニエンスコンストラクタの挙動を確認するためサンプルコードを書いてみた。

#import <Foundation/Foundation.h>

@interface TestPool : NSAutoreleasePool
-(void) addObject:(id)anObject;
@end

@implementation TestPool
-(void) addObject:(id) anObject
{
  NSLog (@" add %@(%@)\n", [anObject class], anObject);
  [super addObject: anObject];
}
@end

int main (int argc, const char * argv[])
{
  NSAutoreleasePool * pool = [[TestPool alloc] init];
  NSString *aString1;
  NSString *aString2;
  NSArray *anArray1;

  aString1 = [NSString string];          // --> add NSCFString()
     // コンビニエンスコンストラクタなので autorelease されている
  aString2 = [[NSString alloc] init];    // autoreleaseしていないので何も出力されない
  anArray1 = [NSArray array];            // --> add NSCFArray(())
     // コンビニエンスコンストラクタなので autorelease されている
  [pool drain];
  return 0;
}