具だくさん
昨日の続き
昨日は寝落ちてしまったのでw
具だくさんなので色々書きますよ
先ず、cocoa用Makefile
LDFLAGS=-framework Foundation -framework AppKit
これだけ! make最高!
hoge.m
#import <Foundation/Foundation.h> int main(int argc, char* argv[]) { id pool = [[NSAutoreleasePool alloc] init]; NSString *p = nil; if(argc < 2 || atoi(argv[1]) == 0) { p = @"hoge"; } else { switch(atoi(argv[1])) { case 1: p = [NSString stringWithString:@"hoge"]; break; case 2: p = [NSString stringWithFormat:@"%@", @"hoge"]; break; case 3: p = [NSString stringWithContentsOfFile:[NSString stringWithFormat:@"%s", __FILE__] encoding:NSASCIIStringEncoding error:NULL]; break; case 4: p = [NSString stringWithUTF8String:"hoge"]; break; case 5: p = [NSString stringWithCString:"hoge" encoding:NSASCIIStringEncoding]; break; default: fprintf(stderr, "%s\n", "hoge"); exit(-1); break; } } NSString *q = [p copy]; NSString *r = [NSString stringWithString:p]; NSString *s = [r copy]; NSLog(@"%p, %p, %p, %p", p, q, r, s); [pool release]; return 0; }
元となるNSStringの生成を色々な方法でやってみました。
これで色んなNSStringのサブクラスでどうなるか一撃です。
make
$ make hoge
これだけ! make最高!
一気に実行します。
$ for i in 0 1 2 3 4 5 ;do ./hoge $i;done 2011-02-03 20:58:45.647 hoge[31533:903] 0x100001068, 0x100001068, 0x100001068, 0x100001068 2011-02-03 20:58:45.659 hoge[31535:903] 0x100001068, 0x100001068, 0x100001068, 0x100001068 2011-02-03 20:58:45.676 hoge[31536:903] 0x100111650, 0x100111650, 0x100111650, 0x100111650 2011-02-03 20:58:45.688 hoge[31537:903] 0x100111b80, 0x100111b80, 0x100111b80, 0x100111b80 2011-02-03 20:58:45.700 hoge[31538:903] 0x1001110d0, 0x1001110d0, 0x1001110d0, 0x1001110d0 2011-02-03 20:58:45.713 hoge[31539:903] 0x1001110f0, 0x1001110f0, 0x1001110f0, 0x1001110f0
全部同じ結果!
以上!