objective-c 笔记

花了近一周的时间看了objective-c的主要语法,

都说其语法貌似天书,加上中文教程少,所以学习起来的确有困难。网上有斯坦福2011秋的公开课,

不过新手会看得一头雾水,强烈推荐lynda.com的《iOS SDK Essential Training》和《objective-c Essential Training》。

我看斯坦福的教程摸索了五六天,可回头看这个教程一天就豁然开朗了。

一、指针

int myInter = 5;
NSString *myString = @"Hello,world!";  //指针引用

 

 

二、调用 方法 和 消息

类似于C#中的 

 

myObj.someMethod();  myObj.someMethod(arg);

 

在这里用

 

[myObj someMethod]; [myObj someMethod:arg];

 

调用多个参数很人性化,比如

 

myObj.insert("Hello",11221);

 

在这里用

 

[myObj insertString:@"hello" atIndex:11221];

 

看一个内置的类,通常有很多方法,用这种结构调用起来一目了然

[NSBitmapImageRep

    pixelsWidth:

    pixelsHeight:

    hasAlpha:

    ...

]

 

方法同样是可以嵌套的

 

[myObj someMethod[otherObj[otherMethod]];

 

三、创建对象

创建一个对象分两部分:

 

NSDate *myDate = [NSDate alloc];
myDate = [myDate init];

 

合并起来就是

 

NSDate *myDate =[[NSDate alloc] init];

 

这里还可以用new简化。

 

四、ARC (Automatic Reference Counting)

使用后就不需要自己进行内存管理了

 

MyClass *myObj =[MyClass alloc] init];
[myObj someMethode];
//[myObj release] 不再需要

 

ARC不允许有内存管理的代码

 

五、自定义类

分两个部分 .h文件中的interface和.m中的implementation

 

//.h文件中
@interface MyClass:NSObject
+(void) methodStatic; //类似于静态方法
-(void) myMethod;
@end

 

//.m文件中
@implementation MyClass
+(void)methodStatic{
    NSLog(@"俺是个类似于静态的方法");
}
-(void)myMethod{
    NSLog(@"俺需要实例化后才能调用");
}
@end

 

类的property

非常实用的,安全又亲切,自动生成getter和setter,可以抛弃[]使用熟悉的.符号了

也分两个部分,用@property定义在.h文件,用@synthesize实现在.m文件

 

//.h文件
@interface Koobe :NSObject
@property int age;
@property (nonatomic,strong) NSString *name; //(非多线程,强类型),概念一搜就有
@end
//.m文件
@implementation Koobe
@synthesize age,name;
@end

 

这样就可以用.符号调用了

Koobe *NewKoobe = [[Koobe alloc] init];
NewKoobe.name=@"Partoo"; //等同于[NewKoobe name]
NewKoobe.age = 50; //等同于[NewKoobe age]

 

 

posted @ 2012-04-29 00:30  Partoo  阅读(229)  评论(0编辑  收藏  举报