0

オブジェクトの PHAsset リストに変換したい NSUrl 形式の写真のリストがあります。

どうすればそれを実行できますか?

私の目標は、viewDidLoad 状態のビューに写真のリストをアップロードすることです。

iOS 8 以降で PHAssets ライブラリを使い始めましたが、View Controller を終了するときにすべてのアセットをメモリに保存する簡単な方法がないことに気付きました。したがって、私が行ったことは少し変換です。NSUserDefaults を使用して、PHAssets の URL を NSString オブジェクトとして保存しています。

ここで実行する必要があるのは、ロード状態で PHAssets リストを再度ロードして、選択したすべての画像をユーザー ビューで再び使用できるようにすることだけです。

4

2 に答える 2

1

を調べてみましたfetchAssetsWithALAssetURLs(_:options:)か?ALAssets に慣れていない場合は、ALAssets を調べる必要があります。もちろん、アセット ライブラリは iOS 9 で減価償却されることに注意してください。

于 2015-08-02T21:28:00.133 に答える
1

調査後、PHAsset は PHObject から localIdentifier プロパティを継承します。基本的に、localIdentifier はオブジェクトを永続的に識別する一意の文字列であり、NSString オブジェクトであるため、後で NSUserDefaults を使用してメモリに格納できます。

私がしたことは、このプロパティを抽出し、次のようにメモリに保存することです:

NSMutableArray* pbjects = [[NSMutableArray alloc]init];
for(id key in keys)
{
   PHAsset *asset = [dic objectForKey:key];
   [pbjects addObject:asset.localIdentifier];
}

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];[defaults setObject:pbjects forKey:KEY_PICTURES_LIST];
[defaults synchronize];

PHAsset 配列を抽出したいときは、次の行を使用しました。

PHFetchResult* assets =[PHAsset fetchAssetsWithLocalIdentifiers:picsUrls options:nil];

次に、アセットの結果を反復処理し、すべての PHAsses オブジェクトを通常の NSArray のようにアップロードします。それに関する情報はここで見つけることができます

于 2015-08-03T14:59:34.237 に答える