ios - PHAssetChangeRequest always returns nil when creating video assets -


i saving newly-created video file in local documents. copy photo library using photos framework.

problem is, though video being written out (and can confirm it's there , viewable), following creation request return nil:

[[phphotolibrary sharedphotolibrary] performchanges:^{      // nsstring filepath points newly-created file in documents directory     nsparameterassert([[nsfilemanager defaultmanager] isreadablefileatpath:filepath]);     // path looks fine      nsurl* url = [nsurl urlwithstring:filepath];     phassetchangerequest* createassetrequest = [phassetchangerequest creationrequestforassetfromvideoatfileurl:url];      // got nil creationrequestforassetfromvideoatfileurl, assert out here     nsparameterassert(createassetrequest); } completionhandler:^(bool success, nserror *error) {}]; 

not surprisingly, url problem. url = [nsurl urlwithstring:filepath] not point movie file. it's fine if url in (for example) following way:

nsfilemanager *filemanager = [nsfilemanager defaultmanager]; nsurl *documentsurl = [[filemanager urlsfordirectory:nsdocumentdirectory indomains:nsuserdomainmask] lastobject]; nsarray *contents = [filemanager contentsofdirectoryaturl:documentsurl                                        includingpropertiesforkeys:@[]                                                           options:nsdirectoryenumerationskipshiddenfiles                                                             error:nil]; nspredicate *predicate = [nspredicate predicatewithformat:@"lastpathcomponent == 'movie.mov'"]; nsurl* url = nil; (nsurl *fileurl in [contents filteredarrayusingpredicate:predicate]) {     url = fileurl; } 

Comments