#import、@interface这类玩意说的是什么?
1、#import
你可以把它认为是#include,一样的。但是最好用#import,记住这个就行了。
2、@interface等等
比如你在c#中写一个抓孩子类的定义:
public class Kids : System { private string kidName=”mykid”; private string kidAge=“15”; private bool isCaughtKid() { return true; } }
当然,上面的写法不一定对,就是个用于看语法的举例。
在Objective-C里就得这么写:
先写一个kids.h文件定义这个类:
@interface Kids: NSObject { NSString *kidName; NSString *kidAge; } -(BOOL) isCaughtKid:; @end
再写一个kids.m文件实现:
#import “kids.h” @implementation Kids -(void) init { kidName=@”mykid”; kidAge=@”15”; }
-(BOOL) isCaughtKid:{ return YES; } @end
这个写法也不一定对,主要是看看语法就行了。-_-b
问题三、一个方法如何传递多个参数?
一个方法可以包含多个参数,不过后面的参数都要写名字。
多个参数的写法
(方法的数据类型) 函数名: (参数1数据类型) 参数1的数值的名字 参数2的名字: (参数2数据类型) 参数2值的名字 …. ; 举个例子,一个方法的定义:
-(void) setKids: (NSString *)myOldestKidNamesecondKid: (NSString*) mySecondOldestKidName thirdKid: (NSString *)myThirdOldestKidName;
实现这个函数的时候:
-(void) setKids: (NSString *)myOldestKidNamesecondKid: (NSString *)mySecondOldestKidName thirdKid: (NSString *) myThirdOldestKidName{ 大儿子 = myOldestKidName; 二儿子 =mySecondOldestKidName; 三儿子 =myThirdOldestKidName; }
调用的时候:
Kids *myKids = [[Kids alloc] init]; [myKids setKids: @”张大力” secondKid: @”张二力” thirdKid: @”张小力”];
而如果你用c#写这个方法,大致的写法可能是
public void setKids( stringmyOldestKidName, string mySecondOldestKidName, stringmyThirdOldestKidName) { … }
调用的时候大概的写法可能是:
Kids myKids = new Kids(); myKids.setKids (“张大力”, “张二力”, “张小力”);
明白了吧?其实不怎么难看懂。
基本上,如果你能了解下面这段代码的转换关系,你Objective-C的语法也就懂了八成了:
[[[MyClass alloc] init:[foo bar]] autorelease];
转换成C#或者Java的语法也就是: MyClass.alloc().init(foo.bar()).autorelease();
|