GUI版Hello World


#import <Cocoa/Cocoa.h>

@interface AppController : NSObject {
	IBOutlet id textField;
}
- (IBAction)sayHello:(id)sender;
@end
#import "AppController.h"

@implementation AppController
- (IBAction)sayHello:(id)sender
{
	[textField setStringValue:@"Hello World!"];
}
@end

かなり独特な言語な気がする。ボタンに関するコードが出てこない。アウトレットとアクションの接続はInterface Builderで行うからか。むむむ。 

コマンドラインプログラムの例だと以下のような感じ。

#import <Cocoa/Cocoa.h>


@interface MyObject : NSObject {
	int count;
	int index;
}
-(int)count;
-(int)index;
-(void)setCount:(int)cnt;
-(void)setCount:(int)cnt andIndex:(int)i;
@end
#import "MyObject.h"


@implementation MyObject

-(int)count
{
	return count;
}
-(int)index
{
	return index;
}

-(void)setCount:(int)cnt
{
	count=cnt;
}
-(void)setCount:(int)cnt andIndex:(int)i
{
	count=cnt;
	index=i;
}
@end
#import <Foundation/Foundation.h>
#import "MyObject.h"
int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
	MyObject* object = [[MyObject alloc] init];
	[object setCount:12 andIndex:6];
	int count;
	count=[object count];
	int index;
     index=[object index];
     NSLog(@"count is %d", count);
	NSLog(@"index is %d", index);
	[object release];
    [pool release];
    return 0;
}

実行結果

2008-09-16 22:13:53.407 ObjC Test[696:10b] count is 12
2008-09-16 22:13:53.409 ObjC Test[696:10b] index is 6

javaだと

public class MyObject extends Object {
	
	private int count;
	
	private int index;
	
	public int count() {
		return count;
	}
	
	public int index() {
		return index;
	}
	
	public void setCount(int cnt) {
		count=cnt;
	}
	
	public void setCountAndIndex(int cnt, int i) {
		count=cnt;
		index=i;
	}

}
public class Main {

	public static void main(String[] args) {
		
		MyObject object = new MyObject();
		object.setCountAndIndex(12, 6);
		int count;
		count=object.count();
		int index;
		index=object.index();
		System.out.println("count is "+count);
		System.out.println("index is "+index);
		object=null;
		
	}
}

こんな感じかな。

参考:

たのしいCocoaプログラミング[Leopard対応版]

たのしいCocoaプログラミング[Leopard対応版]

サンプルコードのダウンロード
BNN新社「たのしいCocoaプログラミング[Leopard対応版]」サンプルファイルダウンロード