Skip to content

Instantly share code, notes, and snippets.

@yuiseki
Created September 10, 2012 08:57
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yuiseki/3689764 to your computer and use it in GitHub Desktop.
Save yuiseki/3689764 to your computer and use it in GitHub Desktop.
ALAssetsLibraryの取り扱い方法メモ
// AssetsLibrary.frameworkを追加し、
// .hで@property (nonatomic, strong) ALAssetsLibrary *library;とか宣言しておく
// 以下は、カメラロール内のある時点以降の画像をすべてUITableViewに表示しようとしている例
-(void)initAssetsLibrary
{
// TODO 保存時刻古い順でソートしたい → AssetsLibrary標準のAPIではできない
static dispatch_once_t pred = 0;
dispatch_once(&pred, ^{
self.library = [[ALAssetsLibrary alloc] init];
});
NSMutableArray *collector = [[NSMutableArray alloc] initWithCapacity:0];
NSUserDefaults *uDefault = [NSUserDefaults standardUserDefaults];
NSDate *uploaded_date = [uDefault objectForKey:@"UPLOAD_COMPLETE_DATE"];
NSDate *install_date = [uDefault objectForKey:@"INSTALL_DATE"];
[self.library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos
usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
[group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop) {
if ([[asset valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) {
NSDate *date = [asset valueForProperty:ALAssetPropertyDate];
NSTimeInterval since_upload = [date timeIntervalSinceDate:uploaded_date];
NSTimeInterval since_install = [date timeIntervalSinceDate:install_date];
if ( (since_install > 0 ) && (since_upload != since_upload || since_upload > 0) )
[collector addObject:asset];
}
}];
self.photos = collector;
[self.mytableview reloadData];
self.uploadNum = [NSNumber numberWithInt:[self.photos count] ];
NSLog(@"upload num: %@", [self.uploadNum description]);
}
failureBlock:^(NSError *error) {
NSLog(@"asset lib enumerate error");
}
];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment