Attention! Translated article might be found on my English blog.

2015年8月7日金曜日

単純なCプログラムからObjCのFoundation KitやApplication Kitを使う

Foundation KitやApplication Kitのちょっとした動作確認に便利な方法です。

こんな感じで単純なCのコードからObjCを使いたい場合、
#import <Foundation/Foundation.h>

int main( int argc, char** argv ) {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    
    NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    NSLog(@"%@", storage.cookies);
    [pool release];
    return 0;
}

 こんな感じでMakefileを書いて

CC = gcc

SharedCookie: main.m
    $(CC) -Wall -std=c99 main.m -o SharedCookie -framework Foundation

makeするとビルドできます。

ポイントは

  • ソース中ではクラスを使う前にNSAutoreleasePoolオブジェクトを生成しておく
  • ビルド用コマンドでは-frameworkでframework名を指定する

あたりでしょうか。
gcc使ってますけど最近はxcodebuildとかなんだろうか。
ちょっと古い方法かもしれませんがあしからず。