Foundation框架(NSString)
来源:互联网 发布:php函数别名 编辑:程序博客网 时间:2024/06/05 19:32
- Foundation框架介绍
- NSString介绍及基本使用
Foundation框架介绍
- 1)什么是框架
- Foundation框架允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组,字典和集合,其他功能包括处理日期和时间、内存管理、处理文件系统、存储(或归档)对象、处理集合数据结构(如点和长方形)
Cocoa是Foundation和AppKit
Cocoa Touch是Foundation和UIKit - 2)Foundation框架的作用
- Foundation框架是Mac\iOS中其他框架的基础
Foundation框架包含了很多开发中常用的数据类型:
结构体
枚举
类 - 3)如何使用Foundation框架
- 要想使用Foundation框架中的功能,包含它的主文件即可
#import <Foundation/Foundation.h>
- 4)不小心修改了系统的文件,引起的错误
- 有时候会在不经意之间修改了系统自带的头文件,比如NSString.h,这时会出现以下错误:
只需要删除Xcode的缓存即可,缓存路径是:/Users/用户名/Library/Developer/Xcode/DerivedData(默认情况下,这时一个隐藏文件夹),要想看到上述文件,必须在终端敲指令显示隐藏文件夹,指令如下:
显示隐藏文件:defaults write com.apple.finder AppleShowAllFiles - bool true
隐藏隐藏文件: defaults write com.apple.finder AppleShowAllFiles - bool false
输入指令后,记得重启Finder
NSString介绍及基本使用
- 1.什么是NSString?
- 一个NSString对象就代表一个字符串(文字内容)
一般称NSString为字符串类
2.NSString的创建方式
1 最直接的方式: NSString * str = @"abc"; (这是常量字符串)
2 格式化的方式:
NSString * st2 = [NSString stringWithFormat:@"%@", @"jack"];NSString * str = [[NSString alloc]initWithFormat:@"My age is %d", 10];//这种写法,字符串存储在内存的堆区(地址不一样)
3 从文件中读取
main.m#import <Foundation/Foundation.h>int main(int argc, const char * argv[]){ @autoreleasepool{ //定义要写入的字符串 NSString * str = @"welcome to BeiJing"; //开始写入文件 NSError * err; [str writeToFile:@"/Users/xx/Desktop/1.txt" atomically: YES encoding: NSUTF8StringEncoding error: &err]; if (err != nil){ NSLog("写入失败"); }else{ NSLog(@"写入成功!"); } } return 0;}
4 从文件中读取字符串显示到控制台上
NSString * str5 = [NSString stringWithContentsOfFile: @"/Users/apple/Desktop/t.txt" encoding:NSUTF8StringEncoding error: &err];if (err == nil){ NSLog(@"读取成功"); NSLog(@"%@", str5);}else{ NSLog(@"读取失败"); //可以打印err的信息 NSLog(@"%@", err); //可以通过[err localizedDescription];打印简单的错误信息 //NSLog(@"%@", [err localizedDescription]);}
5 使用USURL读写字符串
URL的全称是Uniform Resource Locator(统一资源定位符)
URL是互联网上标准资源的地址,每个资源都有一个唯一的URL,它包含的信息指出资源的位置,根据一个URL就能找到唯一的一个资源
1.URL的格式:
基本URL包含协议、主机域名(服务器名称\IP地址)、路径
举例: http://ios.itcast.cn/ios/images/content_25.jpg
可以简单认为:URL = 协议头://主机域名/路径
2.使用NSURL读写字符串
//传入完整的字符串创建NSURL * url = [NSURL URLWithString:@"file://Users/apple/Desktop/str.txt"];//通过文件路径创建(默认就是file协议的)NSURL * url1 = [NSURL fileURLWithPath:@"/Users/apple/Desktop/str.txt"]
6 NSString常见方法
-(NSString *)uppercaseString;//全部转换为大写字母-(NSString *)lowercaseString;//全部字符转为小写字母-(NSString *)capitallizedString//首字母变大写,其他字母都变小写。如果一个句子中有多个单词,那么会将每个单词的首字母变成大写,其余字母变成小写-(BOOL)isEqualToString:(NSString *)aString;//两个字符串内容的比较,相同返回YES,不同返回NO//注意: == 比较的是两个对象的地址是否相同,不是字符串的内容-(NSComparisonResult)compare:(NSString *)string;//这个方法可以用来比较两个字符串内容的大小//比较方法,逐个字符地进行比较ASCII值,返回NSComparisonResult作为比较结果//NSComparisonResult是一个枚举,有3个值://如果左侧 > 右侧, 返回NSOrderedDescending,//如果左侧 < 右侧, 返回NSOrderedAscending,//如果左侧 ==右侧, 返回NSOrderedSame-(NSComparisonResult)caseInsensitiveCompare:(NSString *)string;//忽略大小写进行比较,返回值与compare一致-(BOOL)hasPrefix:(NSString * )aString;//是否以aString开头-(BOOL)hasSuffix:(NSString *)aString//是否以aString结尾-(NSRange)rangOfString:(NSString *)aString;//用来检查字符串是否包含了aString//如果包含,就返回aString的范围,不包含,NSRange的location为NSNotFound,length为0[str rangeOfString:@"str" options:NSBackwardsSearch];//从后向前搜索-(NSString *)substringFromIndex:(NSUInteger)from;//从指定位置from开始(包括指定位置的字符)到尾部-(NSString *)substringToIndex:(NSUInteger)to;//从字符串的开头一直截取到指定的位置to,但不包括该位置的字符-(NSString *)substringWithRange:(NSRange)range;//按照所给出的NSRange从字符串中截取子串-(NSString *)stringByReplacingOccurencesOfString:(NSString * )target withString:(NSString *)replacement;//用replacement替换target-(NSUInteger)length;//返回字符串的长度(有多少个字符)-(unichar)characterAtIndex:(NSUInteger)index;//返回index位置对应的字符//字符串转为基本数据类型-(double)doubleValue;-(float)floatValue;-(int)intValue;-(char *)UTF8String; //在操作SQLite数据时才会用到//转换为C语言字符串NSString * s1 = @"123";char * s2 = s1.UTF8String;printf("%s", s2);//去除所有的空格[str stringByReplacingOccurrencesOfString:@"" withString:@""]//去除首尾的空格[str stringByTrimmingCharatersInSet:[NSCharacterSet whitespaceCharacterSet]];{ //指定条件比较字符串的大小 NSString *str = @"abc"; NSString * str2 = @"aBc"; NSComparisonResult result = [str compare: str2 options: NSCaseInsensitiveSearch];//不区分大小写,结果为0,表示相等 NSComparisonResult result1 = [str compare:str2 options:NSNumericSearch];//按照个数比较,字符个数多的为大 //并且可以使用"|"来同时满足多个条件 if([str compare:str2 options:NSCaseInsensitiveSearch | NSNumericSearch] == NSOrderedSame){ NSLog(@"They match!"); }}-(NSRange)rangeOfString:(NSString *)aString;//字符串的查,用来查找字符串内容中是否包含了aString如果包含,就返回aString在字符串中第一次出现的范围[str rangeOfString: @"str" options: NSBackwardsSearch];//从后向前搜索
7 NSRange使用
1.NSRange是Foundation框架中比较常用的结构体,它的定义如下:
typedef struct _NSRange{
NSUInteger location; //表示该范围的起始位置
NSUInteger length;//表示该范围的长度
}NSRange;
//NSUInteger的定义
typedef unsigned int NSInteger;
typedef unsigned long NSUInteger;
2.NSRange的创建
方式1:
NSRange range;range.location = 7;range.length = 3;
方式2:
NSRange range = {7, 3};或者NSRange range = {.location = 7, .length = 3};
方式3:
NSRange range = NSMakeRange(7, 3);
方式4:最直接的方式
NSRange range = {5, 8};
查看Range的值,可以使用
NSLog(@"%@", NSStringFromRange(range));
8.字符串的其他用法
1.获取字符串的每个字符
NSString * str = @"ios.itcast.cn";for (int i = 0; i<str.length; i++){ unichar c = [str characterAtIndex:i]; printf("%c\t", c);}
0 0
- Foundation框架 NSString
- Foundation框架之NSString
- Foundation框架中的NSString
- Foundation框架基础 NSString
- Foundation框架中的NSString
- Foundation框架(NSString)
- Foundation框架- NSString用法
- Foundation框架-NSString
- Foundation框架---NSString 和 NSMutableString
- Foundation框架-01 NSString对象
- 【黑马程序员】Foundation框架NSString
- Cocoa Foundation 框架:NSString字符串的使用
- Objective C Foundation框架(NSString)
- Foundation框架第二弹:NSString常用方法
- Foundation框架中的字符串(NSString/NSMutableString)
- Foundation框架 - NSString类 、NSMutableString类
- Foundation框架—结构体、NSString
- Foundation框架--NSString类字符串常用操作
- Badboy自动化测试工具 参数化 Add Variable
- Android自定义弹性ScrollView
- hibernate二级缓存
- Docker:Up & Running(读书笔记,前半部分)
- 200多个js技巧代码
- Foundation框架(NSString)
- VS2005快捷键集合
- ios 设置状态栏风格
- centos 上 epel源
- iOS中通知和代理的区别
- iOS-NSUserDefaults的用法(轻量级本地数据存储)
- Jsoup解析Html
- 基于浏览器内核的被动式爬虫任务下发框架
- FZU 2150 Fire Game (DFS + BFS)