黑马程序员--Foundation小结

时间:2022-12-08 21:43:55

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

Foundation框架结构体
一般结构体的创建
struct Car{
int speed;
double price;
};
struct Car c={250,100000.0f};


NSRange:location、length
创建方式:
方式一:
NSRange c;
c.location = 10;
c.length = 8;
方式二:
NSRange c = {10,8};
方式三:
NSRange c = NSMakeRange(10,8);


NSPoint/CGPoint:值没有符合,位置
NSString NSStringFromPoint(名字);
NSSize/CGSize:值没有符合,尺寸


NSRect/CGRect
是CGPoint和CGSize的集合

NSString和NSMutableString

字符串存放在常量区,常量区特点是,一旦创建完成,就不能改变。

字符串方法使用:
1、字符串的长度:
string.length
2、拼接或添加字符串
NSString str = [NSString stringWithFormat:@"%d%c",6,'s'];


NSString str = [NSString stringWitnString:@"addThings"];
3、C中字符串转换成OC字符串
NSString str = [NSString stringWithUTF8String:"needToBeConverted"];
4、获取字符串位置
NSString str = [String rangeOfString:@"needToBeSearched"];
if(range.location == NSNotFount){
NSLog(@"can't fint it");
}
5、字符串截取
NSString str = [string substringFromIndex:index];
NSString str = [string substringToIndex:index];
6、改变长度
因为字符串是常亮,一旦声明就不能更改,所以OC提供了NSMutableString
NSMutableString strMut = [NSMutableString åstring];
[strMut setString:@"string"];//设置字符串
[strMut appendString:@"addString'"];//追加字符串


注意:
if(str1 == str2){
}
实质上是判断字符串地址是否相同

if([str isEquakToString:str2]){
}
先判断字符串指向的地址是否相等,如果不等,就循环判断对于的字符是否相等

如果要判断两个字符串是否相等,一定要通过isEqualToString

NSArray和NSMutableArray

NSArray不可改变
NSArray创建
NSString *p1 = @"张";
NSString *p2 = @"王";
NSString *p3 = @"李";
NSArray *p = [[NSArray alloc]initWithObjects:p1,p2,p3,nil];//nill相当于C语言字符串"\0"的作用


Xcode4.4后NSArray方便创建形式
NSArray *p = @[p1,p2,p3];
NSString *pp = p[1];


[p objectAtIndex:0]用来访问元素下标
[p count]用来获取array长度
[p containsObject:@"张"]是否包含某元素(BOOL类型值)
[p arrayByAddingObject:@"赵";]在array尾部增加一个元素(返回NSArray *类型)
NSUInteger index = [p indexOfObject:@"张"];
if(index == NSNotFound){
    //没有找到
}else{
    //找到了
}


NSMutableArray可改变
NSMutableArray创建
NSString *p1 = @"张";
NSString *p2 = @"王";
NSString *p3 = @"李";
NSMutableArray *pMut = [[NSMutableArray alloc] initWithObjects:p1,p2,p3, nil];


添加元素:
[p addObject:p1]
[p addObjectsFromArray:其他数组]把其他数组所有元素添加到p中
[p addObject:其他数组]这样添加会使p变成二维货多维数组


[p insertObject:@"things" atIndex:0]在数组指定位置插入特定元素
[p replaceObjectAtIndex:0 withObject:@"代替品"]用代替品替换0处的元素
[p exchangeObjectAtIndex:0 withObjectAtIndex:1]下标为0和1的元素互换位置


[p removeObjectAtIndex:1]删除下标为1的元素
[p removeLastObject]删除最后一个元素
[p removeObject:@"王"]删除名为"王"的元素
[p removeAllObject]晴空数组

NSObject
常用方法
isEqual判断两个指针变量是否指向同一个对象,在OC中他还有一个简单的用法,就是直接使用"=="来进行比较,这两个效果是一样的
isMemberOfClass判断一个指针变量指向的对象是不是属于一个类创建的
isKindOfClass判断一个指针变量指向的对象是不是一个类的子类
responseToSelector判断一个类中是否有某个方法,他的判断是只要这个方法有实现,就返回YES
performSelector调用对象中的一个方法