IPhone学习1- 初始化
nil 类似于C中的NULL, 但nil是Object, 可以发送消息给nil
如:
[nil message]
BOOL 也是通过类库实现的, 分别是YES和NO
#import 类似了 #include ,但不会存在重复包含的问题
在普通的双引号字符串前放置一个@符号,就成了一个 NSString对象
方法名字前面的单个减号(-)表明该方法是一个实例方法。如果方法名字前面是一个加号(+),则表明该方法是一个类(static)方法。
这个概念在C++中也是有的.
Objective-C中的类可以分为两种类型的方法: 实例方法(instance methods)和类方法(class methods). 实例方法就是一个在类的一个具体实例的范围内执行的方法。也就是说,在你调用一个实例方法前,你必须首先创建类的一个实例。而类方法,不需要你创建一个实例。
以下是自己在学习Objective-c的时候所涉及的代码:
类的定义:
Java代码
#import <Cocoa/Cocoa.h>
@interface StringUtils : NSObject {
}
//默认的初始化方法
- (id) init;
//指定的初始化方法,比如NSString自带的有 initWidthFormat这个初始化方法
- (id) initWithString:(NSString*) string;
- (NSArray*) split:(int) a;
@end
#import <Cocoa/Cocoa.h>
@interface StringUtils : NSObject {
}
//默认的初始化方法
- (id) init;
//指定的初始化方法,比如NSString自带的有 initWidthFormat这个初始化方法
- (id) initWithString:(NSString*) string;
- (NSArray*) split:(int) a;
@end
类的实现:
Java代码
//
// 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) initWithStringNSString *) string
{
if(self = [super init]){
NSLog(string);
}
return (self);
}
- (NSArray*) split:(int) a
{
NSLog(@"aaaaaaaaa");
return @"ssss";
}
@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) initWithStringNSString *) string
{
if(self = [super init]){
NSLog(string);
}
return (self);
}
- (NSArray*) split:(int) a
{
NSLog(@"aaaaaaaaa");
return @"ssss";
}
@end
开始调用:
Java代码
#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;
}