Foundation框架
Foundation框架
NSBundle
- NSBundle的类方法
- mainBundle:获取项目主路径
- pathForResource-ofType:通过文件名及类型获取文件的相对路径
- URLForResource-withExtension:通过文件名和类型获取文件的绝对路径
- mainBundle:获取项目主路径
/***************获取文件路径示例****************/ //该文件必须是存放在项目包内,而不是Assets.xcassets内 //方式一:pathForResource-ofType NSString *path = [[NSBundle mainBundle] pathForResource:@"07 See You Again (feat. Charlie Puth).mp3" ofType:nil]; //方式二:URLForResource-withExtension NSURL *url = [[NSBundle mainBundle] URLForResource:@"いつも何度でも(主题歌).mp3" withExtension:nil];
NSURL
- NSURL的创建
//方式一 NSURL *url = [[NSBundle mainBundle] URLForResource:@"いつも何度でも(主题歌).mp3" withExtension:nil]; //方式二 NSString *path = [[NSBundle mainBundle] pathForResource:@"07 See You Again (feat. Charlie Puth).mp3" ofType:nil]; NSURL *url = [[NSURL alloc] initFileURLWithPath:path];
NSNumber
- NSNumber的类方法
- numberWithFloat:将浮点类型数据转化成OC对象
NSUserDefaults
- NSUserDefaults的类方法
- standardUserDefaults:创建一个NSUserDefaults对象
- 这个对象其实类似字典,着也是一个单例的例子
- standardUserDefaults:创建一个NSUserDefaults对象
- NSUserDefaults的对象方法
- synchronize:把数据同步到本地
NSString
- NSString对象的常见方法
- sizeWithAttributes:返回字符串文字的size,传入文字属性
- width:返回字符串文字的宽度
- height:返回字符串文字的高度,只能计算一行的高度
- sizeWithFont-constrainedToSize:计算会自动换行的字符串文字高度
- boundingRectWithSize-options-attributes-context:
- boundingRectWithSize:传入一个CGSize
- options:计算方式,传入NSStringDrawingUsesLineFragmentOrigin即可,从左上角开始计算
- attributes:传入字符串属性
- context:传入nil即可,和绘图有关
- sizeWithAttributes:返回字符串文字的size,传入文字属性
/*********sizeWithAttributes的使用*********/ NSString *test = @"text"; NSDictionary *testAttributes = @{NSFontAttributeName:[UIFont systemFontOfSize:17] }; CGSize testSize = [test sizeWithAttributes:testAttributes]; /*********sizeWithFont-constrainedToSize的使用*********/ //如果文字需要换行计算文字的高度 NSString *test = @"text"; //最大宽度是400,高度不限制 CGSize testSize = CGSizeMake(400, MAXFLOAT); CGFloat testHeight = [test sizeWithFont:[UIFont systemFontOfSize:17] constrainedToSize:testSize].height; /*********sizeWithFont-constrainedToSize的使用*********/ NSString *test = @"text"; NSDictionary *testAttributes = @{NSFontAttributeName:[UIFont systemFontOfSize:17] }; //最大宽度是400,高度不限制 CGSize testSize = CGSizeMake(400, MAXFLOAT); CGFloat testHeight = [test boundingRectWithSize:testSize options:NSStringDrawingUsesLineFragmentOrigin attributes:testAttributes context:nil].size.height; }
NSMutableArray
- NSMutableArray的对象方法
- addObject:向数组中添加成员
NSArray
- NSArray的类方法
- arrayWithContentsOfFile:通过一个文件创建一个数组
NSTimer
- NSTimer的应用场景
- 定时器:每隔一段时间执行一个方法
- NSTimer的常见方法
-
scheduledTimerWithTimeInterval-target-selector-userInfo-repeats:每隔固定时间通知目标对象执行某个方法
- 会返回一个自动执行的定时器对象
- 传入执行方法的参数为NSTimer对象
- TimeInterval:时间间隔
- target:目标对象,即执行方法的对象,一般设置控制器self
- selector:执行的方法,@selector(方法名)
- userInfo:会随着传递到执行方法的对象一起传递过去,在执行方法中通过对象的属性调用即可(time.userInfo)
- repeats:是否重复,NO即执行一次
-
invalidate:停止定时器
-
- NSTimer的注意点
- NSTimer停止后即会被销毁,开始-停止是在不停的创建和销毁NSTimer对象
- NSTimer默认在主线程中操作,所以在主线程显示刷新UI界面,处理与用户的其他交互事件时候,就会停止处理NSTimer,所以需要
#import "ViewController.h" @interface ViewController () @property (nonatomic ,strong) NSTimer *timer; @end /* 主线程:程序已启动,系统会默认创建一条线程 主线程作用:显示刷新UI界面,处理与用户的交互事件 */ @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; } - (void)startTimer { //创建一个NSTimer对象 self.timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(xxxx) userInfo:nil repeats:YES]; //作用:修改timer在runLoop中的模式为NSRunLoopCommonModes //目的:不管主线程在做神马操作,都会分配一定的事件处理定时器 //NSRunLoopCommonModes:可以分配一定的时间处理定时器 [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]; } -(void)stopTimer { //停止定时器,即销毁定时器 [self.timer invalidate]; }
NSRunLoop
NSLayoutConstraint
- NSLayoutConstraint的注意点
- storyboard中每一条约束都是一个NSLayoutConstraint对象
- storyboard创建的约束也可以像其他控件一样拖线至代码中
- 使用代码创建约束必须创建NSLayoutConstraint对象
- 创建好后使用被添加对象的addConstraint方法将创建好的NSLayoutConstraint对象添加进被添加对象
- 对于两个同层级view之间的约束关系,添加到他们的父View上
- 对于两个不同层级view之间的约束关系,添加到他们最近的共同父view上
- 对于有层级关系的两个view之间的约束关系,添加到层级较高的父View上
- 在使用代码添加约束的时候,要将每一个添加约束的View的translatesAutoresizingMaskIntoConstraints修改为NO
-
NSLayoutConstraint的常见属性
- constant:获取/设置某一NSLayoutConstraint对象的约束常量数值
-
NSLayoutConstraint的常见方法
-
constraintWithItem-attribute-relatedBy-toItem-attribute-multiplier-constant:创建NSLayoutConstraint对象的方法
- constraintWithItem:添加的约束的对象
- attribute:添加约束的对象的属性,例如宽高等
- relatedBy:添加约束的对象与数值或参照对象的关系
- toItem:参照对象,没有参照对象时,toItem为nil
- attribute:参照对象的属性,没有参照对象时,attribute为0或者NSLayoutAttributeNotAnAttribute
- multiplier:参照对象的属性的倍增数,没有参照对象时,multiplier为0.0
- constant:约束常量
- 与参照对象之间的偏移约束常量,例如与底部的距离是30,constant就是-30
- 自身的约束常量,例如约束宽度为30,constant就是30
-
addConstraint:将创建好的约束添加入对应控件,对应constraintWithItem创建方法
-
constraintsWithVisualFormat-options-metrics-views:使用VFL语言创建一个约束数组
- constraintsWithVisualFormat:用VFL语言写的约束字符串
- options:添加对齐约束,例如顶部对齐,底部对齐,是指水平方向上所有空间对齐
- metrics:字典参数,字典中包含当约束常量用其他标识符标识时,各个标识符所对应的竖直,例如以下的space
- views:字典参数,字典中包含“[]”中括号内对象标识符所对应的对象
-
addConstraints:将创建好的约束添加入对应控件,对应constraintsWithVisualFormat创建方法
-
NSIndexPath
- NSIndexPath的对象属性
- section:tableView中哪一组
- row:tableView中哪一行
- NSIndexPath的对象属性
-