GNUstepでobjective-cを学ぶ(3)

ひとつ、objective-cのメソッド記述について、癖があるので書き直しておきます。

先日書いた、class のところ、C++ で言えば、

class A
{
public:
void print( int x );
void print( char *s );
};

なところを、書き換えるとすれば、

@interface A : NSObject
- (void)printInt:(int)x;
- (void)printString:(char*)s;
@end

こんな風に、printInt、printStringのようにメソッド名を変えないといけないのですが、メソッド名の工夫にはルールがあります。

 

– (戻り値)キーワード:(型)引数 キーワード:(型)引数

のようにメソッドが構成されますが、最初のキーワードはcocoaのライブラリを見ると命名ルールがあります。

RGB値を制御する、次のC++のクラスを考えます。

class RGB
{
float _r, _g, _b;
public:
void setColor( float r, float g, float b );
int getRed();
int getGreen();
int getBlue();
};

これを直す場合は、

 

@interface RGB : NSObject
{
float _r, _g, _b;
}
- (void)setColorRed:(float)r green:(float)g blue:(float)b ;
- (float)getRed ;
- (float)getGreen ;
- (float)getBlue ;
@end

のように、「setColorRed」というメソッド名を付けます、、、というか、「setColorRed:green:blue」というメソッド名を付けます、という言い方が正しいです。
と言うのも、区切り方としては、「setColor red:green:blue」のように、メソッド名と最初の引数のラベルを離して考えるのが良いようです。

 

NSMutableString
http://www.gnustep.org/resources/documentation/Developer/Base/Reference/

のドキュメントを見ると、そんな感じで多重定義をしています。

~~~
覚書 mac mini 購入の準備。

Windows マシンから Mac を操作する
http://tokyo.secret.jp/macs/vnc_mac.html

考えてみたら、VNC 接続でもいいんだ。若干もたつくだろうけど、基本は xcode しか使わないし。あと、プログラミングだけならば、telnetで繋ぐ(笑)という荒業もあるし。

ただし、ここで書かれている方法だと、mac の画面上でパスワードを入れないと駄目なので、mac にもディスプレイが必要、という難点がある。

やりたいことは、ディスプレイ無しの windows server に繋げるようにリモート接続したいので、

1.mac mini の電源ON
2.windows マシンからリモート接続して作業
3.windows マシンからリモートで mac の電源OFF

が、できないと困る。
まあ、FreeBSD ベースだから、

1.mac mini の電源ON
2.windows から telnet ログインして vnc サーバ立ち上げ
3.windows マシンから vnc 接続して作業
4.windows マシンから mac mini の電源OFF

でも、できるんでしょう。多分。

カテゴリー: 開発, Objective-C パーマリンク