iOS Foundation框架初接触

来源:互联网 发布:尤里的复仇数据修改 编辑:程序博客网 时间:2024/05/16 15:38

刚接触 iOS 的 Foundation 框架,感觉和 Java 的 lang 包挺类似。以前总觉得框架好像很深奥,了解一些 Foundation 框架基础后发现不难,其他虽然还没怎么了解,但感觉应该会相似。
主要介绍了以下几个常用的类:

NSString

char *s = "Hello OC"; // C语言定义的字符串NSString *str = @"Hello"; // OC语言定义的字符串NSString str1 = [NSString stringWithUTF8String:s]; // C字符串转换为OC字符串NSLog(@"str1 = %@", str1); // 打印输出NSLog(@"str2 = %s", [str UTF8String]); // OC字符串转换为C字符串
NSString *str = @"iOS"; // 系统帮我们实例化对象,释放内存(无需自己释放内存)NSString *str = [[NSString alloc] init]; // 需要自己释放内存str = @“iOS”;

格式化字符串:

int a = 10;int b = 20;NSString *str = [NSString stringWithFormat:@"a = %d, b = %d", a, b];NSLog(@"str = %@", str);

字符串连接:

NSString *str1 = [str stringByAppendingString:@"hi"]; // str后链接字符串hi

大小写转换:

NSString *str = @"aBcDe";[str lowercaseString]; // 转为小写[str uppercaseString]; // 转为大写

判断前后缀

NSString *str = "www.baidu.com";BOOL hasprefix = [str hasPreFix:@"www"]; // 判断是否包含指定的前缀BOOL hasSuffix = [str hasSuffix:"com"]; // 判断是否包含指定的后缀

判断两个字符串是否相同

NSString *str1 = @"hello";NSString *str2 = @"hello";if ([str1 isEqualToString:str2]) {    NSLog(@"两个字符串一致");} else {    NSLog(@"两个字符串不一致");}

还可以用 NSComparisonResult 比较,此方法略麻烦。

分割字符串

NSString *str = @"a, b, c, d, e";NSArray *arr = [str componentsSeparatedByString:@","]; // 用逗号作分割符,返回一个数组for (NSString *s in arr) { // 遍历输出    NSLog(@"str = %@", s);}

按照范围截取字符串

NSRange range = NSMakeRange(1, 2); // 参数:起始位置,长度[@"hello" substringWithRange:range]; // @"hello"也可为事先定义好的字符串

截取

[@"hello" substringFromIndex:2]; // 从第二位开始截取到最后[@"hello" substringToIndex:5];

拆分

for (int i=0; i<[@"hello" length]; i++) {    NSLog(@"%c", [@"hello" characterAtIndex:i]); // 将字符串拆分为一个个字符}

查找

NSString *str = @"ab cd ef ab";NSRange range = [str rangeOfString:"ab"];NSLog(@"range.location:%ld range.length:%ld", range.location, range.length); // 查找字符串 ab 的位置和长度(若有多个,则默认第一个)

替换

NSString *str1 = @"Hello, world";NSString *str2 = [str1 stringByReplacingOccurrencesOfString:@"Hello" withString:@"你好"]; // 将 "Hello" 替换为 “你好“
NSRange range = [str rangeOfString:@"hello"];[str ];(???)

读取文件(???)

写入文件(???)

删除

NSMutableString

NSArray

NSArray *arr = [[NSArray alloc] initWithObjects:@"a", @"b", @"c", nil]; // 注意最后一个元素为 nil

获取数组中的元素

NSArray *arr = [[NSArray alloc] initWithObjects:@"a", @"b", @"c", nil];[arr firstObject]; // 获取第一个元素[arr objectAtIndex:2]; // 获取第二个元素(从0开始,注意不要越界)

删除元素

[arr removeAllObjects]; // 删除数组内所有元素[arr removeLastObject]; // 删除最后一个元素[arr removeObject:@"c"]; // 删除指定的元素

交换元素位置

[arr exchangeObjectAtIndex:0 withObjectAtIndex:1]; // 交换位置为0和1的两个元素

NSMutableArray

NSDictionary

初始化(不常用)

NSDictionary *dict = [NSDictionary dictionaryWithObject:@"1" forKey:@"a"];

常用初始化方法

NSDictionary *dict = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"1",@"2", @"3", nil] forKeys:[NSArray arrayWithObjects:@"a", @"b", @"c", nil]];

简写

NSDictionary *dict = @{@"1":@"a", @"2":@"b", @"3":@"c"};

字典长度

int count = (int)[dict count];NSLog(@"count = %d", count);

查找

[dict valueForKey:@"b"]; // 根据 key 查找 value(要分清key和value)[dict allValues]; // 返回所有的值(数组类型)

替换

NSArray *array = [dict1 objectsForKeys:[NSArray arrayWithObjects:@"a", @"2", nil] notFoundMarker:@"not found"];        NSLog(@"%@", array); // 若未找到对应的value,则显示为"not found"替换

遍历

NSDictionary *dict = @{@"1":@"a", @"2":@"b", @"3":@"c"};for (NSString *key in dict) {    NSLog(@"%@ = %@", key, [dict2 objectForKey:key]);}

输出结果:
0

NSMutableArray

初始化

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];[dict setObject:@"1" forKey:@"a"];[dict setObject:@"2" forKey:@"b"];

删除键值对

[dict removeAllObjects]; // 删除所有[dict removeObjectForKey:@"a"]; // 删除某个[dict removeObjectsForKeys:[NSArray arrayWithObjects:@"b", @"c", nil]]; // 删除多个

PS:未完成,待进一步整理。

总结自 慕课网

0 0