读Plist文件
NSString *errorDesc = nil;
NSPropertyListFormat format;
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [rootPath stringByAppendingPathComponent:@"bookmarks.plist"];
if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath]) {
plistPath = [[NSBundle mainBundle] pathForResource:@"bookmarks" ofType:@"plist"];
}
NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];
context.bookmarksDic = (NSMutableDictionary *)[[NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves
format:&format
errorDescription:&errorDesc] retain];
keysArr = [[[context.bookmarksDic allKeys] sortedArrayUsingSelector:@selector(compare:)] retain];
if (!context.bookmarksDic) {
NSLog(@"Error reading plist: %@, format: %d", errorDesc, format);
}
写入Plist
Context *context = [Context getInstance];
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [rootPath stringByAppendingPathComponent:@"bookmarks.plist"];
NSString *error;
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:context.bookmarksDic
format:NSPropertyListXMLFormat_v1_0
errorDescription:&error];
if(plistData) {
[plistData writeToFile:plistPath atomically:YES];
}
else {
NSLog(@"%@",error);
[error release];
}
分享到:
相关推荐
本DEMO旨在教授如何在iPhone和iPad上读取、写入和保存plist文件。下面我们将详细探讨这些操作。 1. **读取plist文件** 要读取plist文件,首先需要获取文件路径。在iOS中,文件通常存储在沙盒的不同目录下,如...
2. **创建Plist文件**:使用类库提供的API,你可以创建一个新的Plist文件,或者打开一个已存在的文件进行读写。例如,可以创建一个`NSDictionary`或`NSArray`的.NET等效对象,然后用这些对象构建Plist结构。 3. **...
5. **风险与注意事项**:修改.plist文件可能会对应用或系统稳定性造成影响,因此在进行编辑前,最好备份原文件。错误的修改可能导致应用崩溃或系统不稳定,因此必须谨慎操作,并确保对所修改内容有充分理解。 6. **...
在iOS开发中,`.plist`(Property List)文件是一种...这个Demo可以帮助开发者理解如何在Objective-C环境中进行.plist文件的存取操作,是iOS开发中的基础技能之一。通过学习和实践,可以提升对iOS数据持久化的理解。
Plist文件通常用于存储键值对,数组,字典,日期,字符串,数字和二进制数据等类型的数据。Plist.net库使得非苹果环境下的开发人员也能轻松地读取、写入和操作这些文件,从而更好地支持跨平台开发,特别是针对Mac OS...
5. **项目结构**:“Persistence”这个文件很可能包含了项目的主要代码,可能包括一个或多个类,用于处理属性列表的读写操作。通常会有个主类负责处理数据的序列化和反序列化,以及文件I/O操作。 6. **实际应用**:...
这通常涉及JSON或plist文件的读写,以及数据结构的设计。 7. **调试与优化**:在开发过程中,调试和性能优化是必不可少的。开发者可能需要使用Xcode的调试工具,检查内存泄漏,优化渲染效率,确保游戏在不同设备上...
同时,为了提高用户体验,可能需要对大量数据的读写操作进行异步处理,避免阻塞UI线程。 总之,《Iphone开发基础教程》的这一章详细阐述了如何利用SQLite实现iOS应用的数据持久化,通过学习这些内容,开发者能够...
并修改 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/SDKSettings.plist 文件中的DEPLOYMENT_TARGET_SUGGESTED_VALUES字段值(需获取读写权限) ...
如果项目包含这部分内容,我们可以看到如何在代码中进行Plist读写: ```objc // 读取Plist NSString *path = [[NSBundle mainBundle] pathForResource:@"MyPlist" ofType:@"plist"]; NSDictionary *dict = ...
之后,调用discoverCharacteristics方法获取服务中的特征,最后通过readValue或writeValue方法进行数据读写。 源码还会包含错误处理和断开连接的逻辑。例如,当连接失败或断开时,代理方法会被调用,开发者需要适当...
在Info.plist文件中添加使用蓝牙的NSBluetoothAlwaysUsageDescription或NSBluetooth PeripheralUsageDescription权限描述,否则应用无法请求用户授权使用蓝牙。 8. **多设备连接管理**: 当需要同时连接多台...
此外,了解plist、JSON和XML等数据格式的读写也非常重要。 6. **网络编程** 掌握使用URLSession进行网络请求,包括GET、POST等HTTP方法,以及JSON解析,是实现应用与服务器交互的基础。 7. **推送通知** iOS的推...
在“iPhone开发全局变量的使用”这个主题中,我们将深入探讨如何在iPhone应用开发中有效地利用全局变量,以及一个名为"SingletonDemo全局变量使用"的示例。 全局变量通常在程序的全局作用域内定义,可以被任何函数...
要使用HealthKit,你需要在Info.plist文件中添加使用描述键NSHealthUpdateUsageDescription,告知用户你的应用将请求访问其健康数据。 以下是一段简单的代码示例,展示如何使用HealthKit读取步数: ```swift ...
通过XML文件(Prefrences.plist)配置各个设置项,包括开关、文本字段、选择器等。 2. 自定义设置界面:除了系统设置应用,开发者也可以在应用内创建自己的设置界面,使用UITableView展示设置项,通过IBAction处理...
3. 示例代码(示例目录):展示了如何在实际项目中使用libplist进行plist文件的读写操作。 4. 文档(README、INSTALL、COPYING等):提供安装指南、许可信息和其他重要细节。 5. 测试用例(test目录):用于验证...
开发者需要在`info.plist`文件中声明支持的协议,只有声明过的协议才能进行通信。 5. **数据交换**:一旦找到连接的设备,可以通过`EAAccessory`的`protocolStrings`属性找到对应的协议,然后创建`NSInputStream`和...
对象归档是苹果的Foundation框架提供的一种机制,它能够将Objective-C的对象转换为字节流(即序列化),然后存储到磁盘上,如SQLite数据库、plist文件或二进制文件。当需要时,这个字节流可以读回并恢复成原来的对象...
总结起来,iOS开发者可以通过上述步骤对Xcode创建文件时的自动注释进行个性化定制,包括系统默认信息和自定义模板。这不仅可以使代码更具可读性,也能体现出个人或团队的代码风格。记得定期检查和更新这些设置,以...