我正在创建一个iPhone应用程序,同时学习OOP。我有两个名为GUTimer和GUInterval的类。每个实例都需要归档到plist,并在需要时单独解除存档。 我的问题是,我应该创建一个管理这些对象类型的加载和保存的管理器类。还是应该创建单独的类,一个管理GUTimer实例的保存和加载,另一个管理GUInterval实例的保存和加载? 我还在学习面向对象,这是我的分级项目,所以我只想提出可能的最佳解决方案。任何帮助,将不胜感激。 谢谢。用于从文件创建一组对象的单独的类?
0
A
回答
1
我会对你的对象实施NSCoding协议,然后用这样的存档/取消存档即可:
+ (NSObject *)readArchiveFile:(NSString *)inFileName
{
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *documentsDirectoryPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectoryPath, inFileName];
NSObject *returnObject = nil;
if([fileMgr fileExistsAtPath:filePath])
{
returnObject = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
}
return returnObject;
}
+ (void)archiveFile:(NSString *)inFileName inObject:(NSObject *)inObject
{
NSString *documentsDirectoryPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectoryPath, inFileName];
BOOL didSucceed = [NSKeyedArchiver archiveRootObject:inObject toFile:filePath];
if(!didSucceed)
{
NSLog(@"File %@ write operation %@", inFileName, didSucceed ? @"success" : @"error");
}
}
+ (void)deleteFile:(NSString *)inFileName
{
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *documentsDirectoryPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectoryPath, inFileName];
NSError *error;
if ([fileMgr fileExistsAtPath:filePath] && [fileMgr removeItemAtPath:filePath error:&error] != YES)
{
NSLog(@"Unable to delete file: %@", [error localizedDescription]);
}
}
0
这个问题并没有真正的答案。如果你正在学习面向对象,那么你很快就会明白这一点。我可以给出的最好的建议是将你的对象分解成功能区域和大小。为了可读性,你想避免巨大的类,但除此之外,它基本上取决于你自己的偏好。如果你能证明一个特定的设计决定,那么它可能适合你。
相关问题
- 1. 从单独的类对象中创建新类对象的实例
- 2. 调用一个单独的.js文件中的JavaScript对象类
- 3. 关于创建一个类的对象
- 4. 从txt文件行创建类对象
- 5. 基于属性的单独对象组
- 6. 创建单独的对象与循环
- 7. 为单独的一组用户创建单独的表格
- 8. 从wsdl的每个类创建单独的文件?
- 9. 使用从xml文档读取的对象数组创建类
- 10. 创建类的对象从一个文件中,没有重复的对象
- 11. Python使用多个文件从一个类创建对象
- 12. 如何从单独的文件夹导入多个类对象?
- 13. 从对象数组创建一个对象引用父对象
- 14. 创建类似于从多个对象.ctors列表文件
- 15. 从一个单独的类调用对象的setter方法
- 16. 用Perl创建简单的类/对象?
- 17. 从一个单独的类更改表单对象的属性
- 18. 创建一个从出口组件的新对象使用bowserify
- 19. Javascript,从对象数组创建表单
- 20. 创建一个PHP文件单独
- 21. 创建数组类对象
- 22. 从ASPX页面创建一个单独的文件
- 23. 发送/创建一个对象到/在一个单独的Java类中
- 24. KnockoutJS访问一个单独的类中的对象数组
- 25. 创建I类对象数组创建
- 26. 从单独的文件构建一个PHP数组
- 27. 从json数组创建一个强类型的对象
- 28. 从python的2D数组类中创建一个对象
- 29. 用单一形式创建多个对象(类似的类型)
- 30. 创建从一个单独的线程
我觉得阅读和写作应该在GUTimer和GUInterval,无需进行额外的课程,因为所有这些都是模型的一部分。 –