1.Info.Plist文件的操作
1.支持Https协议
//1.打开info.plist->Open As ->Source Code
//2.加入允许的键值对
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
2.导航栏上方的状态栏颜色等修改操作
//1.在info.plist文件中设置
(双击info.plist-->Open As --> Source Code)加入以下键值对
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
//3.在Appdelegate中设置
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
//4.隐藏导航栏上方的状态栏
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];
5.语言本地化/国际化设置
//1.打开info.plist -->Localization native development region ->en(默认英文)
//2.如果只支持中文"en"代号替换成''zh"代号
6.使用地图时,开启相关条件
//1.打开info.plist->Open As ->Source Code
//2.加入允许的键值对
//一直允许定位
<key>NSLocationAlwaysUsageDescription</key>
<string>
请点击“允许”以允许“中原找房”访问您的位置信息。
</string>
//使用时允许定位
<key>NSLocationWhenInUseUsageDescription</key>
<string>
请点击“允许”以允许“中原找房”访问您的位置信息。
</string>
//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)
- 手动创建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<NSDictionary*> *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;
}