首页 > 代码库 > Foundation Kit常用类介绍
Foundation Kit常用类介绍
Foundation Kit是OS X类库和IOS类库共享的基础类库,里面提供了很多封装类,具体可以见https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/ObjC_classic/,下面介绍一些常用类。
1.字符串类:NSString和NSMutableString。
NSMutableString继承于NSString,两者的区别是:NSMutableString是可变的,而NSString是不可变的。也就是说当字符串已经确定下来,NSString不能对这个字符串进行删除和添加操作,而NSMutableString就是解决这个问题的。
如下代码:
NSString* pStr1 = @"hello";
[pStr1 stringByAppendingString:@" world"]; //pStr1还是hello
NSMutableString* pMTStr = [NSMutableString stringWithFormat: @"hello"];
[pMTStr appendString: @" world"]; //pMTStr为hello world
pStr1调用方法stringByAppendingString后pStr1还是hello,pMTStr调用方法 appendString后pMTStr直接变为hello world。那么我们如何让pStr1变为hello world呢?很简单:pStr1 = [pStr1 stringByAppendingString:@" world"],这样就达到了pMTStr appendString相同的效果。
2.动态数组:NSArray和NSMutableArray,两者区别类似NSString和NSMutableString。动态数组类似于stl里面的vector。
3.链表:我没有找到类似于C++ STL里面的list实现,有知道的同学请告诉下我。
4.set集合: NSSet, NSMutableSet, and NSCountedSet。
一开始我还以为NSSet跟C++的set差不多,看文档之后才发现,NSSet不会对对象进行排序,但是NSSet会保证对象的唯一性。
NSString *pStr1 = @"c"; NSString *pStr2 = @"b"; NSString *pStr3 = @"a"; NSString *pStr4 = @"c"; NSSet* mySet = [NSSet setWithObjects:pStr1, pStr2, pStr3, pStr4, nil];
上面代码里面mySet里面的对象为 b,c,a。
5.map实现:NSDictionary和NSMutableDictionary,类似于C++里面的map。
6.疑问:OC里面有类似C++里面的multiset、multimap、list、stack、deque实现吗?目前我在文档里面没有查到类似类,有知道的朋友可以告诉下我,谢谢!
Foundation Kit常用类介绍