Objective-c 学习: 初始化
版权所有,欢迎转载,转载请注明 : SinFrancis http://mdev.cc
nil 类似于C中的NULL, 但nil是Object, 可以发送消息给nil
如:
[nil message]BOOL 也是通过类库实现的, 分别是YES和NO
#import 类似了 #include ,但不会存在重复包含的问题
在普通的双引号字符串前放置一个@符号,就成了一个 NSString对象
方法名字前面的单个减号(-)表明该方法是一个实例方法。如果方法名字前面是一个加号(+),则表明该方法是一个类(static)方法。这个概念在C++中也是有的.
Objective-C中的类可以分为两种类型的方法: 实例方法(instance methods)和类方法(class methods). 实例方法就是一个在类的一个具体实例的范围内执行的方法。也就是说,在你调用一个实例方法前,你必须首先创建类的一个实例。而类方法,不需要你创建一个实例。
以下是自己在学习Objective-c的时候所涉及的代码:类的定义:
#import <Cocoa/Cocoa.h> @interface StringUtils : NSObject { } //默认的初始化方法 - (id) init; //指定的初始化方法,比如NSString自带的有 initWidthFormat这个初始化方法 - (id) initWithString:(NSString*) string; - (NSArray*) split:(int) a; @end
类的实现:
// // StringUtils.m // string // // Created by sin francis on 10-7-12. // Copyright 2010 __MyCompanyName__. All rights reserved. // #import "StringUtils.h" @implementation StringUtils - (id) init { if(self = [super init]){ NSLog(@"init method"); } return (self); } - (id) initWithString :(NSString *) string { if(self = [super init]){ NSLog(string); } return (self); } - (NSArray*) split:(int) a { NSLog(@"aaaaaaaaa"); return @"ssss"; } @end
开始调用:
#import <Foundation/Foundation.h> #import "StringUtils.h" int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; //StringUtils* s= [[StringUtils new]; //一开始使用的方法,生成对象,现在我们使用alloc的方式生成对象 StringUtils* s= [[StringUtils alloc] init]; [s split: 1]; StringUtils* s1= [[StringUtils alloc] initWithString :@"this is the init string"]; // insert code here... NSLog(@"Hello, World!"); [pool drain]; return 0; }
相关推荐
worldsnow 2020-11-06
csdnxingyuntian 2020-11-02
丽丽 2020-10-30
bluecarrot 2020-09-17
哈嘿Blog 2020-08-16
qidiantianxia 2020-08-16
84931231 2020-07-30
ChenRuiyz 2020-07-26
yanqianglifei 2020-07-07
wbczyh 2020-07-05
BOBShe 2020-07-03
yang0cs 2020-06-28
fushilin 2020-06-28
清水寺小僧 2020-06-25
uileader 2020-06-21
wangyangsoftware 2020-06-16
cleanerxiaoqiang 2020-06-16
xuguiyi00 2020-06-14