1、NSString的使用
C的字符串保存:1)字符数组 2)字符串的指针
OC中又专门的字符串处理的类(有字符串类型)
NSString 不可变的字符串
NSMutableString 可变字符串
NSString 是OC字符串的类
1) NSString保存字符串
NSString *str = @"abc"; //用str保存字符串常量
创建空字符串
NSString *str = [NSString new];
str = @"xxxx";
格式化字符串(拼接)
stringWithFormat
字符串连接
NSString *str1="itcast";
NSString *str2 = [NSString stringWithForamt:@"welcome to %@",str1]; // welcome to itcast
字符的拼装
NSString *str3 = [[NSString alloc] initWithFormat:@"welcome %d,%f",20,2.3f]; // welcome 10,2.300000
NSString *str4 = @"welcome 10,2.300000";
2)计算NSString的字符串的长度
[str length];
1) 纯英文
NSString *str5 = @"abc"; // 3
2)纯中文
//UTF-8 国际通用编码3 GB2312 国内标准2 GBK
NSString *str6 = @"传智播客"; //4
char *str7 = "传智播客"; //12
3)中英文混合
NSString *str6 = @"传智播客xy"; //6
2、对象和方法之间的关系
(1)对象作为方法的参数
Person *p = [Person new];
Person *p1 = [Person new];
-(void)test:(Person *) person;
[p test:p1];
//p1 -----> person
(2)对象作为方法的返回值
-(Person *)test1{
//p3 0x40
Person *p3 = [Person new];
p3->_name = @"zhe";
return p3;
}
//p4 0x40
Person *p4 = [p test1];
3、对象作为方法的参数,连续传递
1)枪作为方法的参数
-(void)fireByGun:(Gun*) gun;
-(void)fireByGun:(Gun*) gun{
[gun shoot];
}
2)增加了 子弹的类
-(void)fireByGun:(Gun *) gun andBullet:(Bullet *) bullet;
-(void)fireByGun:(Gun *) gun andBullet:(Bullet *) bullet{
[gun shoot:bullet];
}
//枪的方法
-(void)shoot:(Bullet *)bullet;
-(void)shoot:(Bullet *)bullet{
bullet->_bulletCount --;
}
4、多文件开发
什么是多文件开发?
C的模块化开发: 把功能相似的函数,写到同一个文件中
.h 函数声明
.c 函数的实现
OC 模块化开发: 把功能不同的类放到不同的文件中
.h 类的声明
.m 类的实现 (方法的实现)
多文件开发的好处:提高代码的可读性
如何进行多文件:
1)new ---> new File ---> Header file(.h)
---> Objective-C file (.m)
Person.h
规范: 1) @interface Person :NSObject
2) #import <Foundation/Foundation.h>
Person.m
3)#import "Person.h" (new Cocoa Class 会自动写这句话)
@implmentation Person
@end
2) new ----> new File ----> Cocoa Class (同时创建.h 和 .m)