IOS总结(二)

  • 1什么是Plist文件?如何解析Plist文件

  • 一般可以使用属性列表文件存储NSArray或者NSDictionary之类的数据,这种“属性列表文件”扩展名是plist,因此也称为“plist文件”

  • 解析plist文件

    • 获取plist文件的全路径
     NSBundle *bundle = [NSBundle mainBundle]';
      NSString *path = [bundle pathForResource:@"shops" ofType:@"plist"];
    
    • 加载plist文件
    _shop = [NSArray arrayWithContentsOfFile:path];
    
  • 2.UIScrollView无法滚动的解决办法

  • 如果UIScrollView无法滚动,可能是以下原因:

    1.没有设置contentSize
    2.scrollEnabled = NO
    3.没有接收到触摸时间:userInteractionEnabled = NO
    ... ...

  • 3.用模型取代字典的好处

  • 使用字典的坏处

一般情况下,设置数据和取出数据都使用“字符串类型的key”,编写这些key时,编辑器没有智能提示,需要手敲
手敲字符串key,key容易写错
key如果写错了,编译器不会有任何警告和报错,造成设差数据或者去错数据

  • 使用模型的好处

模型是专门用来存放数据的对象,用它来表示数据会更加的专业
模型设置数据和取出数据都是通过他的属性,属性如果写错了,编译器会马上报错,因此,保证了数据的正确性
使用模型访问属性时,编译器会提供一系列的提示,提高编码效率

  • 4.Xib和storyboard对比
  • 相同点:

1.都是用来描述软件界面
2.都用Interface Builder工具来编辑
3.本质都是转换成代码去创建控件

  • 不同点

1.Xib是轻量级的,用来描述局部的UI界面
2.Storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系

  • 5.如何创建一个控制器
  • 控制器常见的创建方式有以下几种

1.通过storyboard创建
2.直接创建
LCViewController *lc = [LCViewController alloc] init];

3.指定xib文件来创建

  LCViewController *lc = [LCViewController alloc] initWithNibName:@"LCViewController" bundle:nil];
  • 6.应用沙盒目录的常见获取方式
  • 沙盒根目录:
NSString *home = NSHomeDirectory();
  • Documents:(2种方式)
    • 利用沙盒根目录拼接“Documents”字符串
    NSString *documents = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
    
    (不建议采用,因为新版本的操作系统可能会修改目录名)
    • 利用NSSearchPathForDirectoriesInDomain函数
      // NSUserDomainMask 代表从用户文件夹下找
      // YES 代表展开路径中的波浪字符“~”
      NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, NO);
    // 在iOS中,只有一个目录跟传入的参数匹配,所以这个集合里面只有一个元素
    NSString    *documents = [array objectAtIndex:0];
    

你可能感兴趣的:(IOS总结(二))