IOS学习笔记之三:Foundation Kit详解(第一部分)
来源:互联网 发布:什么跑步软件好 编辑:程序博客网 时间:2024/05/23 13:10
1.CF开头的东西一般是与CoreFoundation有关的部分。而CoreFoundation是纯C语言编写的。Foundation框架是在CoreFoundation的基础上编写的。
2.NSRange是用来表示范围内的东西,比如一个字符串中一定范围内的字符。或者一个数组中的一部分item。主要是两个参数,一个是location,另外一个是length。
使用的时候可以有三种方式,
例1:
NSRange range;
range.location=17;range.length=4;
例2:
NSRange range={17,4};
例3:
NSRange range = NSMakeRange(17,4);
它本身可以作为一个参数,例如[Human eat:NSMakeRange(2,3)];
(这一句好像java得样子啊,不太容易记,还是用例2好了)。
3.Geometric types(几何类型)
CGPoint,CGSize类型,其中CG是Core Graphics的缩写。
OC对象的回收机制是动态的。
NSString的声明和使用是这样的:
NSString *word;
word = [NSString stringWithFormat:@"who are you %d?",5];
用+号声明函数时,代表这个函数是属于该类的,成为类方法,通常用来创建类的实例或者获取一些全球类的数据。
NSString的获取长度的方法也同样适用于国际性语言,例如中文。
4.比较性的方法Comparative Politics
方法如下:
- (NSComparisonResult) compare: (NSString *) aString options: (NSStringCompareOptions) mask;
其中options主要用于设置是否忽略大小写,以及是否比较字符串中数字的值
使用例子如下:
if ([thing1 compare: thing2 options: NSCaseInsensitiveSearch | NSNumericSearch] == NSOrderedSame)
{ NSLog (@"They match!");
}
- (BOOL) hasSuffix: (NSString *) aString;
And you’d use these methods as follows:
NSString *fileName = @"draft-chapter.pages";
if ([fileName hasPrefix: @"draft"]){
// this is a draft}
if ([fileName hasSuffix: @".mov"]){
// this is a movie}
两个方法的函数以及用法如上所示;
- (NSRange) rangeOfString: (NSString *) aString; 用来查验是否在其中一个字符串中有拎一个字符串。
NSRange jackRange = [friends rangeOfString: @"Jack"];
jackRange.length++; // eat the space that follows
以上代码段表示先找到朋友列表中的jack,然后去掉那个空格,最后在删掉friend中的jack部分。[friends deleteCharactersInRange: jackRange];
NSString与NSMutableString的关系就像是java中String和StringBuffer的关系。创建的方法如下:
NSArray只能包含Objective-C的对象,而且不支持被赋值为nil。NSMutableString *string = [NSMutableString stringWithCapacity:42];
初始化的方法如下:
[string appendString:@"123.txt"]
创建的方式如上,最后一个必须是nil来表示这个NSArray已经结束了,这也是为什么这里不能随便被赋值为nil的原因了。NSArray *array = [NSArray arrayWithObjects:@"one", @"two", @"three", nil];
也可以用下面这种方式来创建:
那么如何使array中所有的对象都做同一个操作呢?NSArray *array2 = @[@"one", @"two", @"three"];
声明一个枚举对象,然后挨个对对象中的对象进行枚举,并操作。NSEnumerator *enumerator = [array objectEnumerator];while (id thingie = [enumerator nextObject]){
NSLog (@"I found %@", thingie);}
还有一种快速枚举,代码如下:
不过通常用block得方法来枚举;for (NSString *string in array){
NSLog (@"I found %@", string);}
四种枚举所有对象的方法总结以及什么情况下使用。
NSDictionary:明日继续,先巩固今天所学得内容。
- IOS学习笔记之三:Foundation Kit详解(第一部分)
- IOS学习笔记之四:Foundation Kit详解(第二部分)
- IOS开发笔记(8)Foundation Kit 学习
- object-c 学习之Foundation Kit
- Sprite Kit学习笔记(三)SKAction
- Sprite Kit学习笔记(三)
- 数据库系统概论 学习笔记(三)第一部分
- 黑马程序员——Objecttive-C学习笔记(四):Foundation Kit
- 黑马程序员——Objective-C学习笔记(五):foundation Kit (续)
- Objective-C学习笔记第八章Foundation Kit快速教程
- IOS自学笔记之Foundation(一)
- Foundation of Machine Learning 笔记第一部分——PAC学习框架
- 6.Foundation Kit介绍 部分二
- iOS Swift+Foundation学习笔记
- iOS笔记之_OC-Foundation
- Objective-C学习笔记(一)------Foundation Kit快速学习
- [黑马程序员]15[Foundation框架] Foundation部分学习笔记小结
- SCO UNIX 学习笔记(第一部分)
- java多线程知识个人总结诶
- flash 连接 erlang
- 我就试试学习的第一天
- android学习之路
- size_t
- IOS学习笔记之三:Foundation Kit详解(第一部分)
- SVN cleanup 失败的解决方法
- Java虚拟机内存管理机制(一):JVM内存管理小结
- Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applica
- 测试网速命令 必须学会的几个网络测试命令
- linux项目部署流程
- taskdef class com.install4j.install4jtask cannot found解决
- Matlab基础学习------------------函数微分
- Android Camera setPreviewCallback setOneShotPreviewCallback方法返回的预览数据处理问题