表示范围作用的结构体:NSRange:
有三种方式创建新的NSRange:
1、NSRange
range;
range.location = 17;
range.length = 4;
2、NSRange range =
{17 ,4};
3、NSRange range = NSMakeRange(17,4); (推荐)
表示用来处理几何图形的数据类型:NSPoint(点坐标)和NSSize(长度和宽度)还有一个矩形数据类
型(由点和大小复合而成)NSRect
Cocoa
提供创建这些数据类型方法:
NSMakePoint( )、
NSMakeSize()
NAMakeRect()
表示字符串的类NSString
NSString
*heigth =[NSString stringWithFormat : @"You heigth is %d feet,%d inches",
5,11];
创建的类对象包含了指向超类的指针、类名和指向类方法的列表的指针。类对象还包含一个long
的数据, 为新创建的类对象指定大小。
返回字符串中的字符的个数:
unsigned
int length = [heigth length];
返回Bool
值的字符串比较函数:
- (BOOL) isEqualToString
:(NSString *)aString;//比较两个字符串的内容是否相等
还可以使用compare
:方法
-(NSComparisonResult)compare :(
NSString *)string;//逐个字符比较
不区分大小写的比较:
-(NSComparisonResult)compare :( NSString
*)string options:( unsigned)mask;
注意:NSComparisonResult
是一个枚举值 options 是一个位掩码,即:
NSCaseInsensitiveSearch:不区分大小写
NSLiteralSearch: 进行完全比较,区分大小写
NSNumericSearch:
比较字符串的字符个数,而不是字符值
检查字符串是否以另一个字符串开头
-(BOOL)hasPrefix : (NSString
*)aString;
判断字符串是否是以另一个字符串结尾
-(BOOL)hasSuffix : (NSString
*)aString;
如果你想知道字符串内的某处是否包含其他字符串,使用rangeOfString
: 方法
-(NSRange)rangeOfString :(
NSString *)aString;
NSString
是不可变的,NSMutableString 是可变的。用方法stringWithCapacity :来创建 NSMutableString *string =
[NSMutableString stringWithCapacity :42];
可以使用appendString
:或appendFormat : 来附加新字符串:
- (void)
appendString :(NSString *)aString;
-
(void) appendFormat :(NSString *)format , . . . ;
可以使用deleteCharactersInRange
: 方法删除字符串中的字符
- (void)
deleteCharactersInRange : (NSRange)range;
集合家族:
NSArray:用来存储对象的有序列表(任意类型的对象)
限制:只能存储Objective—C 的对象,不能存储C
语言的基本数据类型(int、float、enum、struct、或者NSArray 中的随机指针)。同时也不能存储nil(对象的零值或NULL
值)
//创建一个新的NSArray
NSArray *array =[NSArray arrayWithObjects : @"one",@"two", nil];
//获得包含的对象个数
- (unsigned)count;
//获得特定索引处的对象
- (id)objectAtIndex :( unsigned int)index
;
切分数组:
使用componentsSeparatedByString :
来切分NSArray,
NSString *string = @"oop
: ack : bork : greeble : ponies" ;
NSArray *chunks = [string
componentsSeparatedByString : @":"];
使用componentsJoinedByString
: 来合并NSArray 中的元素并创建字符串
string =
[chunks componentsJoinedByString :@":-)"] ;
NSArray
是不可变数组,数组中包含的对象是可以改变的,但是数组对象本身是不会改变的。
可变数组NSMutableArray 通过类方法arrayWithCapacity
:来创建可变数组
+ (id)arrayWithCapacity :(
unsigned)numItems ;
NSMutableArray
*array = [NSMutableArray arrayWithCapacity : 17];
使用addObject
: 在数组末尾添加对象
- (void)addObject :(
id)anObject
删除特定索引的对象
- (void)removeObjectAtIndex :(
unsigned)index;
注:可变数组还可以在特定索引处插入对象,替换对象,为数组排序,NSArray
还提供了大量好用的功能。
枚举:
NSEnumerator 用来描述这种集合迭代器运算的方法:
要想使用NSEnumerator,需要通过objectEnumerator
向数组请求枚举器:
- (NSEnumerator *)
objectEnumerator;
可以像这样使用这个方法:
NSEnumerator *enumerator;
enumerator
= [array objectEnumerator ];
注:若想从后向前枚举集合,使用方法reverseobjectEnumerator
; 也可以使用。
获得枚举器以后,开始while
循环,每次循环都向这个枚举器请求它的nextObject
-
(id)nextObject;//返回nil 表明循环结束
注:在枚举的过程中不能改变数组容器。
快速枚举示例:
for(NSString *string in array){
NSLog(@"I found %@", string);
}
数组排序:
例如:一条记录就是一条卡片的信息,包括(NSString *name 和NSString
*email)
-(void)sort
{
[book
sortUsingSelector:@selector(compareNames:)]
}
其中:
@selector(compareNames:)
//创建一个SEL
类型的selector,sortUsingSelector:使用该方法比较数组中的两个元素,
sortUsingSelector:方法需要完成这样的比较,它先调用这个指定的selector
方法,然后向数组(接受 者)的第一条记录发送消息,比较其参数和此记录。指定方法的返回值为NSComparisonResult 类型,返
回值为:若小于返回NSOrderedAscending;相等返回NSOrderedSame;大于返回NSOrderedDescending
-(NSComparisonResult)compareNames:(id)element
{
return [name compare:[element
name]];
}
NSDictionary:(关键字和定义的组合)
NSDictionary 通常在给定一个关键字(通常是一个NSString
字符串)下存储一个数值(可以是任何类 型的对象)。然后你可以使用这个关键字查找相应的数值。
使用dictionaryWithObjectsAndKeys
:来创建字典
+
(id)dictionaryWithObjectsAndKeys :( id)firstObject , . . .
例如:
Tire *t1 = [Tire new];
NSDictionary
*tires = [ NSDictionary dictionaryWithObjectsAndKeys :t1,@"front-left",nil];
使用方法objectForKey
:来获取字典中的值
- (id)objectForKey :(
id)akey;
查找轮胎可以这样:
Tire *tire = [tires objectForkey :
@"front-left"];
创建新的NSMutableDictionary
对象,向类NSMutableDictionary 发送dictionary 消息。也可以使用 dictionaryWithCapacity :
方法来创建新的可变字典
+
(id)dictionaryWithCapacity :(unsigned int)numItems ;
可以使用方法setObject
:forKey :方法给字典添加元素
setObject :
forKey :( id)aKey
下面是另一种使用发送dictionary
消息来创建字典的方法:
NSMutableDictionary
*tires;
tires = [NSMutableDictionary
dictionary] ;
[tires setObject :t1
forKey :@"front-left"];
. .
.
注:若对字典中已有的关键字使用setObject :forKey
:方法,则用新的替换
可以使用removeObjectForKey :
方法来删除可变字典中的一个关键字
-
(void)removeObjectForKey :(id)aKey ;
注:不要去创建NSString、NSArray 或NSDictionary
的子类,实在要的话可以用复合的方式来解决问题。
使用这种方法枚举词典:
for(NSString *key in g)
{
. . .
}
集合对象:
Set
是一组单值对象的集合,有可变和不可变,操作包括:搜索、添加、删除集合中的成员(仅用于可变集合)、比较两个集合,计算两个集合的交集和并集等。
#import <Foundation/NSSet.h>
常用的NSSet 方法
方法 |
说明 |
+(id)setWithObjects:obj1,obj2,...,nil |
使用一列对象创建新集合 |
-(id)initWithObjects:obj1,obj2,...,nil |
使用一列对象初始化新分配的集合 |
-(NSUInteger)count |
返回集合的成员个数 |
-(BOOL)containsObject:obj |
确定集合是否包含obj |
-(BOOL)member:obj |
使用isEqual:方法确定集合是否包含obj |
-(NSEnumerator *)objectEnumerator |
为集合中的所有对象返回一个NSEnumerator 对象
|
-(BOOL)isSubsetOfSet:nsset |
确定receiver 的每个成员是否都出现在nsset 中 |
-(BOOL)intersectsSet:nsset |
确定是否receiver 中至少一个成员出现在对象nsset 中 |
-(BOOL)isEqualToSet:nsset |
确定两个集合是否相等 |
方法 | 说明 |
-(id)setWithCapacity:size |
创建新集合,使其具有存储size 个成员的初始空间 |
-(id)initWithCapacity:size |
将新分配的集合设置为size 个成员的存储空间 |
-(void)addObject:obj |
将对象obj 添加到集合中 |
-(void)removeObject:obj |
从集合中删除对象obj |
-(void)removeAllObjects |
删除接受者的所有成员 |
-(void)unionSet:nsset |
将对象nsset 的所有成员昂添加到接受者 |
-(void)minusSet:nsset |
从接受者中删除nsset 的左右成员 |
-(void)intersectSet:nsset |
将接受者中的所有不属于nsset 的元素删除 |
Foudation框架常用结构体和常用类,布布扣,bubuko.com
原文:http://www.cnblogs.com/needly/p/3630568.html