——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
1、Foundation框架概述
框架是封装起来的一个集合,里面包括把许多类、方法、函数、文档按照一定的逻辑组织起来的,在编写程序的时候可以直接调用,这样就是程序开发变得简捷和方便。
Foundation框架主要定义了一些基础类,供程序员使用,Foundation框架中所有的类的都继承NSObject这个对象。
在Foundation中定义了很多常用结构体类型来简化我们的日常开发,这些结构体完全采用Objective-C定义,和我们自己定义的结构体没有任何区别,之所以由框架为我们提供完全是为了简化我们的开发。常用的结构体有NSRange、NSPoint、NSSize、NSRect等。
#import
/*NSString :不可变字符串
NSMutableString :可变字符串
*/
不可变字符串(NSString)
int main()
{
//最简单的常见字符串的方式
NSString *str = @"itcase";
//char *name = "itcase";
NSLog(@"我在%@上课",str);
int age = 13;
int no = 3;
NSString *name = @"哈哈jack";
int size = [name length];
//length方法算的是字数
NSLog(@"%d", size);
//创建oc字符串的另一种方式
NSString *newStr = [NSString stringWithFormat:@"My age is %d and no is %d and name is %@",age ,no, name];
NSLog(@"----%@",newStr);
return 0;
}
可变字符串(NSMutableString)
int main()
{
NSMutableString *s1 = [NSMutableString stringWithFormat:@"age is 10"];
// 拼接内容到s1的后面
[s1 appendString:@"11 12"];
// 获取is的范围
NSRange range = [s1 rangeOfString:@"is"];
// 删除范围内的数值
[s1 deleteCharactersInRange:range];
NSString*s2 = [NS stringWithFormat:@"age is 10"]
// 重新复制一份s2 把“11 12”拼接到后面,但原来的s2不变
NSString *s3 = [s2 string ByAppendingString:@"11 12"];
NSLog(@"s1 = %@,s2=%@,s1, s2");
return 0;
}
集合
1.NSArray\NSMutableArray
*有序
*可快速创建不可变数组:@[obj1,obj2]
*快速访问元素:数组名[i]
NSArray:不可变数组
int main ()
{
/*
int a = 3;
person *p = [[Person alloc] init];// 利用C语言定义数组
Person *peerson[5] = {p, [[Person alloc] init]};
*/
// oc数组只能存放oc对象、不能存放非oc对象类型,比如int、 struct、enum等
// 这个array永远是空数组
// NSArray *array = [NSArray array];(不可变)
NSArray *array2 = [NSArray arrayWithObject:@"jack"];
// nil是数组元素结束的标记
NSArray *array3 = [NSArr arrayWithObject@"jack",@"rose,nil"];
// 快熟创建一个NSArray对象
NSArray *array4 = @[@"jack",@rose""];
// NSArray的个数
NSLog(@"%ld",arry.count);
// 快速遍历数组,id obj代表着数组中的每一个元素
[array enumrateObjectsUsingBlock:
^(id obj,NSUInteger idx,BOOl *stop)
{
NSLog(@"%ld-%@",idx, obj);
if (idx)
{ // 停止遍历
*stop = YES;
}
}];
return 0;
}
可变数组(NSMutableArray)
int mian ()
{
NSMutableArray *Array = [NSMutableArray arrayWithObject:@"rose",@"jim",nil];
// 错误写法,可变数组不能这么写,只可以创建不可变数组
NSMutableArray *Array = @[@"jack"]
// 添加元素
[[array addOject:[Person alloc]] init];
[array addOject:@"jack"];
// 删除元素
// [array removeObject];
// 删除指定对象
[array removeObjectATIndex:0];
NSLog(@"%@", array);
NSLog(@"%ld",array.count);
return 0;
}
NSSet和NSArray的对比
1.共同点
*都是集合,都能存放多个oc对象
*只能存放oc对象,不能存放非oc对象类型(基本数据类型:int、char、float等,结构体、枚举)
*本身都不可变,都有一个可变的子类
2.不同点
*NsArray有顺序,NSSet没有顺序
NSSet(不可变)
int main()
{
NSSet *s = [NSSEt set];// 固定的 不可变(空的)
NSSet *s2 = [NSSet setWithObject:@"jack","rose",nil];
// 随机拿出一个元素
NSString *str = [s2 anyObject];
NSLog(@"%@", str);
return 0;
}
NSMutableSet(可变)
int main()
{
NSMutableSet *s = [NSMutableSet set];
// 添加元素
[s addOject:@"hack"]
// 删除元素
[s removeObject:(id)];
return 0;
}
字典(NSDictionary\NSMutableDictionary)
1.字典不允许有相同的key,但允许有相同的value(Object)
2.字典是没有顺序的
3.快速访问元素:字典名[key]
int main()
{
// NSDictionry *dict = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];
NSDictionary *dict = @{@"name" : @"jack",@"addresss" : @"北京"};// 用这种方法
// id obj = [dict objectForKey:@"name"];
id obj = dict[@"name"];
NSLog(@"%@", obj);
// 返回的是键值对的个数
NSLog(@"%ld", dict.count);
return 0;
}
NSMutableDictionary:
int main()
{
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
// 添加键值对
[dict setObject:@"jack" forKey:@"name"];
// 删除键值对
// [dict removeObjecctForKey:(id)];
NSString *str = dict[@"name"];
// 打印整个字典的键值对
NSLog(@"%@"dictt);
return 0;
}