.h
typedef NS_ENUM(NSUInteger, DouBanType) {
DouBanActivity,
DouBanMovie,
DouBanCinema,
};
@interface SaveTool : NSObject
+ (BOOL) isActivityInPlist: (Activity *) act;
+ (void) archiveActivityInPlist: (Activity *) act;
+ (void) cancelActivityInPlist: (Activity *) act;
@end
.m
@implementation SaveTool
+ (void) archiveActivityInPlist: (Activity *) act {
NSString *sandBox = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 1, YES) lastObject];
NSString *docPath = [sandBox stringByAppendingPathComponent:@"activity.plist"];
NSMutableArray *arr = [NSKeyedUnarchiver unarchiveObjectWithFile:docPath];
if (arr == nil) {
arr = [NSMutableArray array];
}
for (Activity *temp in arr) {
if ([temp.title isEqualToString: act.title]) {
return;
}
}
[arr addObject:act];
[NSKeyedArchiver archiveRootObject:arr toFile:docPath];
}
+ (void) cancelActivityInPlist: (Activity *) act {
NSString *sandBox = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 1, YES) lastObject];
NSLog(@"%@", sandBox);
NSString *docPath = [sandBox stringByAppendingPathComponent:@"activity.plist"];
NSMutableArray *arr = [NSKeyedUnarchiver unarchiveObjectWithFile:docPath];
for (Activity *temp in arr) {
if ([temp.title isEqualToString: act.title]) {
[arr removeObject:temp];
break;
}
}
[NSKeyedArchiver archiveRootObject:arr toFile:docPath];
}
+ (BOOL) isActivityInPlist: (Activity *) act {
NSString *sandBox = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 1, YES) lastObject];
NSString *docPath = [sandBox stringByAppendingPathComponent:@"activity.plist"];
NSMutableArray *arr = [NSKeyedUnarchiver unarchiveObjectWithFile:docPath];
if (arr == nil) {
return NO;
} else {
for (Activity *temp in arr) {
if ([temp.title isEqualToString: act.title]) {
return YES;
}
}
return NO;
}
}
@end
eg.
BOOL self.isSave = [SaveTool isActivityInPlist:self.activity];
[SaveTool cancelActivityInPlist: self.activity];
[SaveTool archiveActivityInPlist: self.activity];