iOS 小知识点(持续更新)
Posted 鸿鹄当高远
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 小知识点(持续更新)相关的知识,希望对你有一定的参考价值。
1、如何通过代码设置Button title的字体大小
设置Button.titleLabel.font = [UIFont systemFontOfSize:<#(CGFloat)#>] ;
2、获取当前时间
NSDate *timeDate=[NSDate date]; NSDateFormatter * dateformatter=[[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"YYYYMMddHHmmsssss"]; NSString *locationString=[dateformatter stringFromDate:timeDate];
3、判断字符串是否为空字符的方法
- (BOOL) isBlankString:(NSString *)string { if (string == nil || string == NULL) { return YES; } if ([string isKindOfClass:[NSNull class]]) { return YES; } if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0) { return YES; } return NO; }
4、tableView优化
//刷新整个表格 [_tableView reloadData]; //刷新当前行 [_tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
5、百度地图自定义大头针图片
- (BMKAnnotationView *)mapView:(BMKMapView *)view viewForAnnotation:(id <BMKAnnotation>)annotation { // 生成重用标示identifier static NSString *AnnotationViewID = @"AnnotationViewID"; // 检查是否有重用的缓存 BMKAnnotationView* annotationView = [view dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID]; ((BMKPinAnnotationView*)annotationView).pinColor = BMKPinAnnotationColorGreen; annotationView.image = [UIImage imageNamed:@"XXX.png"]; }
6、ios APP上架所需要的 屏幕尺寸
640*960、640*1136、750*1334、1242*2208
7、iOS APP 图标的尺寸
58*58、80*80、120*120、180*180
8、
9、关闭定时器
[_myTimer invalidate];
_myTimer = nil;
10、键盘释放第一响应
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
11、点击UITableViewCell时,没有点击效果,
在cellForRowAtIndexPath:方法中写上
cell.selectionStyle = UITableViewCellSelectionStyleNone;
12、使用NSJSONSerialization 返回的对象,取决于最外层是什么,如果是{}那就是字典,[]那就是数组等
13、只支持竖屏,修改info.plist 文件就可以了。找到"Supported interface orientations" 设置item 项为Portrait就可以了。这个设置为全局设置。
14、iOS开发
先搭框架,后画界面,写功能,写接口,调试,写适配
iOS 开发文档 流程图 UI 框架 接口 功能 适配 测试 更改
iOS 初级开发工程师 C语言基础+swift语言基础
中级iOS开发工程师 iOS项目开发+UI部分+动画图层部分
15、ViewController的生命周期中各方法执行流程如下:
init—>loadView—>viewDidLoad—>viewWillApper—>viewDidApper—>viewWillDisapper—>viewDidDisapper—>viewWillUnload->viewDidUnload—>dealloc
16、GCD
1)运行在主线程的Main queue,通过dispatch_get_main_queue获取。
2)并行队列global dispatch queue,通过dispatch_get_global_queue获取,由系统创建三个不同优先级的dispatch queue。并行队列的执行顺序与其加入队列的顺序相同。
3)串行队列serial queues一般用于按顺序同步访问,可创建任意数量的串行队列,各个串行队列之间是并发的。
17、Xcode项目中我们经常遇到因为空数据(服务器传回来的数据通过JsonKit解析为之类的)导致内存泄漏进而程序崩溃的现象,这个在之前学校的时候就被坑了很多次,所以有必要封装一个非空处理的类,由于能力有限,查看一些网上的资料,想到采用递归的方式处理。
解决办法:一个老外早已在Githud有了空处理的神器:https://github.com/nicklockwood/NullSafe,只要将这个类别(Category)加入项目中就可万事无忧,由于里面代码我也不太懂,所以大家自己研究下哈。
18、读取plist文件
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"provinces.plist" ofType:nil];
NSArray *arr = [NSArray arrayWithContentsOfFile:filePath];
// 加载plist数据 // 一个NSBundle对象对应一个资源包(图片、音频、视频、plis等文件) // NSBundle的作用:用来访问与之对应的资源包内部的文件,可以用来获得文件的全路径 // 项目中添加的资源都会被添加到主资源包中 // [NSBundle mainBundle]关联的就是项目的主资源包 NSBundle *bundle = [NSBundle mainBundle]; // 利用mainBundle获得plist文件在主资源包中的全路径 NSString *file = [bundle pathForResource:@"shops" ofType:@"plist"]; // NSString *file = [bundle pathForResource:@"shops.plist" ofType:nil]; // 凡是参数名为File,传递的都是文件的全路径 shopsArray = [NSArray arrayWithContentsOfFile:file];
19、懒加载:用到时再去加载,而且也只加载一次
(1).懒加载基本
懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其get方法.
注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化
(2).使用懒加载的好处:
好处一:不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强
好处二:每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合
以上是关于iOS 小知识点(持续更新)的主要内容,如果未能解决你的问题,请参考以下文章