你的位置:首页 > 操作系统

[操作系统]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、

苹果公司账号申请:
这个是申请方法:http://jingyan.baidu.com/article/0320e2c1d153161b87507bba.html
这个是官网:https://developer.apple.com/enroll/organization/

 

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方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合