- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我为学校项目创建的 iOS 应用程序中,我无法保存存储在 NSMutableArray 中的数据。该数组是在应用程序委托(delegate)文件中创建的,然后它的委托(delegate)是在各种其他 View Controller 文件中创建的。存储在数组中的数据由自定义类组成,这些类由 NSStrings 和 NSNumbers 作为属性组成。
我已经阅读并关注了这个站点上的许多示例大约一个星期了,但我终究还是弄不明白。我也研究了核心数据,但我不知道如何在不完全重新开始的情况下实现它,不幸的是我时间紧迫。
我尝试过的事情:
在 WillTerminate 方法中归档。 (activityArray 是我的数组)
- (void)applicationWillTerminate:(UIApplication *)application {
NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString* arrayFile = [documentsPath stringByAppendingPathComponent:@"arrayFile"];
[NSKeyedArchiver archiveRootObject:activityArray toFile:arrayFile];
[activityArray release];
然后在 AppDelegate 文件的 didFinishLaunchingWithOptions 方法中解压
NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *arrayFile = [documentsPath stringByAppendingPathComponent:@"arrayFile"];
if ([fileManager fileExistsAtPath:arrayFile]) {
NSLog(@"yes");
activityArray = [NSMutableArray arrayWithContentsOfFile:arrayFile];
} else {
activityArray = [[NSMutableArray alloc] init];
}
根据对其他问题的建议,我在自定义类中执行了以下操作(此类有 2 个 NSString、activityName 和 activityDescription)。
- initWithCoder:(NSCoder *)aCoder {
self = [super init];
activityName = [[aCoder decodeObjectForKey:@"activityName"] retain];
activityDescription = [[aCoder decodeObjectForKey:@"activityDescription"] retain];
return self;
}
-(void)encodeWithCoder:(NSCoder *)aCoder {
[aCoder encodeObject:activityName forKey:@"activityName"];
[aCoder encodeObject:activityDescription forKey:@"activityDescription"];
}
但是这些似乎都不适合我。非常感谢任何帮助。我觉得这应该是一件相当容易的事情,但我似乎无法理解。
最佳答案
Core Data 其实实现起来非常简单和快速。我做了一个blog post几个月前快速设置它。只需创建实体来表示您创建的不同类或自己添加 @dynamic 属性。
请记住,Core Data 的行为与数组相同,因为只能存储对象。因此,您需要将 NSNumber 用于 int\floats 等。
关于iphone - 如何在 iOS 中保存一个充满自定义类的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5524107/
我有 json 数据: { "products": [ { "productId" : 0, "productImg" : "../img/product-ph
我是一名优秀的程序员,十分优秀!