iOS中使用.plist文件延迟读取的方法
2015-06-24 16:41
417 查看
以下是我个人的理解,不对的地方请谅解。
先说一下延迟加载:
我们在ios中读取plist文件时,在程序load时就要把文件中的所有的信息加载到一个可变的数组中。这样就会消耗大量的时间来读取,并且可能占用内存过大。为了解决这个问题,就要用延迟加载来解决。
延迟加载:就是在程序用到的时候调用数据。
举例开始:
1:下面是一个plist文件
2:在处理的时候我们首先在使用者的文件的@property中声明一个数组
@property(nonatomic,strong)NSArray *apps;
3:在当前的.m的文件中实现它的构造方法
-(NSArray *)apps
{
//判断apps里是否为空 ,如过为空则加载
if (_apps ==nil) {
//用mainbundle 来读取plist文件
NSString *path = [[NSBundlemainBundle]pathForResource:@"app.plist"ofType:nil];
//用arrayWithContentsOfFile读取形成数组
NSArray *dictArray = [NSArrayarrayWithContentsOfFile:path];
//声明一个可变的数组
NSMutableArray *appView = [NSMutableArrayarray];
//遍历把对象加载到appView中
for (NSDictionary *dictin dictArray) {
MjApp *app = [MjAppAppWithDict:dict];
[appView addObject:app];
}
//赋值 用于返回
_apps = appView;
}
return _apps;
}
以上函数可以用来延迟加载数据。
4:调用
在load中调用时
用 self.apps
获取数组的长度
self.apps.count
先说一下延迟加载:
我们在ios中读取plist文件时,在程序load时就要把文件中的所有的信息加载到一个可变的数组中。这样就会消耗大量的时间来读取,并且可能占用内存过大。为了解决这个问题,就要用延迟加载来解决。
延迟加载:就是在程序用到的时候调用数据。
举例开始:
1:下面是一个plist文件
2:在处理的时候我们首先在使用者的文件的@property中声明一个数组
@property(nonatomic,strong)NSArray *apps;
3:在当前的.m的文件中实现它的构造方法
-(NSArray *)apps
{
//判断apps里是否为空 ,如过为空则加载
if (_apps ==nil) {
//用mainbundle 来读取plist文件
NSString *path = [[NSBundlemainBundle]pathForResource:@"app.plist"ofType:nil];
//用arrayWithContentsOfFile读取形成数组
NSArray *dictArray = [NSArrayarrayWithContentsOfFile:path];
//声明一个可变的数组
NSMutableArray *appView = [NSMutableArrayarray];
//遍历把对象加载到appView中
for (NSDictionary *dictin dictArray) {
MjApp *app = [MjAppAppWithDict:dict];
[appView addObject:app];
}
//赋值 用于返回
_apps = appView;
}
return _apps;
}
以上函数可以用来延迟加载数据。
4:调用
在load中调用时
用 self.apps
获取数组的长度
self.apps.count
相关文章推荐
- “自释放”在iOS开发中的应用
- ios开发开源框架和类
- 【转】ios字符串编码转换(utf-8 & gbk)问题
- iOS开发基础之ivars(实例变量)与@property(属性)
- iOS xcode7 beta 播放英语
- IOS8 旋转的问题
- IOS安装CocoaPods完整流程
- iOS9/iOS8界面对比 XCode7
- iOS 上传图片到服务器
- IOS快速开发框架
- iOS导航模式综述
- iOS输入框随着键盘高度改变
- IOS 开发学习37 的Architecture与iphone版本对应关系
- 公司用到的一些 iOS 开源库和第三方组件
- iOS控件的动画显示与隐藏
- IOS-百度地图API用点生成线路、导航、自定义标注
- ios开发-凤凰网的揭层式下拉刷,如何下拉table显示其下面的视图不是背景(已解决)
- iOS播放声音
- iOS在地图开发基础,有点乱,将就一下
- iOS中Bonjour:NSNetServiceBrowser在子线程上使用