Object-C_Info.Plist || AppDelegate

1.Info.Plist文件的操作

1.支持Https协议

//1.打开info.plist->Open As ->Source Code
//2.加入允许的键值对
    NSAppTransportSecurity
    
        NSAllowsArbitraryLoads
        
    

2.导航栏上方的状态栏颜色等修改操作

//1.在info.plist文件中设置
(双击info.plist-->Open As --> Source Code)加入以下键值对

    UIViewControllerBasedStatusBarAppearance
    
//3.在Appdelegate中设置
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

//4.隐藏导航栏上方的状态栏
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];

5.语言本地化/国际化设置

1.语言国际化详细说明请参考
2.完整的语言代号列表

//1.打开info.plist -->Localization native development region ->en(默认英文)
//2.如果只支持中文"en"代号替换成''zh"代号

6.使用地图时,开启相关条件

//1.打开info.plist->Open As ->Source Code
//2.加入允许的键值对
    //一直允许定位
    NSLocationAlwaysUsageDescription
    
    请点击“允许”以允许“中原找房”访问您的位置信息。
    

    //使用时允许定位
    NSLocationWhenInUseUsageDescription
    
    请点击“允许”以允许“中原找房”访问您的位置信息。
    

//3.对应的方法
//在IOS8中定位功能新增了两个方法:
- (void)requestWhenInUseAuthorization __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_8_0);
- (void)requestAlwaysAuthorization __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_8_0);

7.Plist文件的读取与创建

  • 目的: 方便存储一些列表固定数据(如:城市列表及相关参数)
  • 介绍: plist文件的实质为Json数据的一个容器(Root结构可以是NSDictorny/NSArray)
Object-C_Info.Plist || AppDelegate_第1张图片
Resource.plist.png

  • 手动创建plist文件
/*!
 *  @brief 创建的plist文件&&读取(手动)
 */
- (void)readSystemPlistFiles{
    //1.创建步骤,Command+N -> 选择Resource --> PropertyPlist --> xx(文件名).plist
    //2.设置plist文件结构(.plist文件的实质就是一个json数据的容器)
    //3.读取文件
    //3.1获取已有完整路径
    NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Resource" ofType:@"plist"];
    //3.2根据文件路径读取json数据,注意:如果Root是NSArray结构,就用NSArray读取接收;如果是NSDictory,就用NSDictory读取接收
    NSArray *resourcePlist = [NSArray arrayWithContentsOfFile:plistPath];
    NSLog(@"%@",resourcePlist);
}
//输出:
2016-08-12 14:31:01.282 Plist文件的使用和创建[5091:156679] (
        {
        ciityId = 2;
        cityCode = 1001;
        cityName = "\U4e0a\U6d77";
    },
        {
        ciityId = 3;
        cityCode = 1002;
        cityName = "\U5317\U4eac";
    },
        {
        ciityId = 4;
        cityCode = 1003;
        cityName = "\U5357\U4eac";
    },
        {
        ciityId = 6;
        cityCode = 1005;
        cityName = "\U6df1\U5733";
    }
)

  • 代码创建plist文件,存储在NSDocumentDirectory中
/*!
 *  @brief 代码创建plist文件
 */
- (void)createPlistFilesByCode {
    //1.读取文件路径
    NSString *filePath = getDoucmentPathWithName(@"PropertyList");
    
    //2.根据文件路径,读取接收数据
    NSMutableArray *resourcePlist = [[NSMutableArray alloc]initWithContentsOfFile:filePath];
    
    NSMutableDictionary *dic = [[NSMutableDictionary alloc ] init];
    [dic setObject:@"总管达人" forKey:@"name"];
    [dic setObject:@"123456" forKey:@"password"];
    [resourcePlist addObject:dic];
    
    //3.写入文件
    [resourcePlist writeToFile:filePath atomically:YES];
    
    NSLog(@"%@",resourcePlist);
}

/*!
 *  @brief 获取本地沙盒路径
 *
 *  @param name 文件名字
 *
 *  @return 文件路径
 */
static NSString *getDoucmentPathWithName(NSString *fileName) {
    
    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    //获取完整路径
    NSString *documentsPath = [path objectAtIndex:0];
    
    NSString *plistPath = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.plist",fileName]];
    
    return plistPath;
}

//输出:
2016-08-12 15:12:21.848 Plist文件的使用和创建[5292:187489] (
        {
        name = "\U5b59\U609f\U7a7a111";
        password = sunwukong;
    },
        {
        name = "\U5b59\U609f\U7a7a111";
        password = sunwukong;
    },
        {
        name = "\U603b\U7ba1\U8fbe\U4eba";
        password = 123456;
    }
)

2.AppDelegate操作

1.后台运行

使用 block 的另一个用处是可以让程序在后台较长久的运行。在以前,当 app 被按 home 键退出后,app 仅有最多 5 秒钟的时候做一些保存或清理资源的工作。但是应用可以调用 UIApplication 的beginBackgroundTaskWithExpirationHandler方法,让 app 最多有 10 分钟的时间在后台长久运行。这个时间可以用来做清理本地缓存,发送统计数据等工作。

// AppDelegate.h 文件
@property (assign, nonatomic) UIBackgroundTaskIdentifier backgroundUpdateTask;

// AppDelegate.m 文件
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [self beingBackgroundUpdateTask];
    // 在这里加上你需要长久运行的代码
    [self endBackgroundUpdateTask];
}

- (void)beingBackgroundUpdateTask
{
    self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        [self endBackgroundUpdateTask];
    }];
}

- (void)endBackgroundUpdateTask
{
    [[UIApplication sharedApplication] endBackgroundTask: self.backgroundUpdateTask];
    self.backgroundUpdateTask = UIBackgroundTaskInvalid;
}

你可能感兴趣的:(Object-C_Info.Plist || AppDelegate)