我现在已经创建了一个自定义相册,我正尝试从FTP站点下载视频并将其移至该自定义相册。
我正在使用Visual Studio 2017 Xamarin C#ios 11.4。
在Info.plist中设置的权限
在执行此步骤之前,我正在测试验证用户是否有权访问照片库。
这是我第一次使用PHPhotoLibrary,但找不到很多C#代码示例。
没有产生错误,只是在PHFetchReult fetchResult开头的行崩溃。
已更新 在我的iPad上的日志中找到了这个。
日期/时间:2018-06-25 18:05:54 -0400 操作系统版本:iPhone OS 11.4.1(Build 15G5072a) 架构:arm64 报表版本:26
数据来源:KPerf轻质PET 内核缓存:0xffffffe000000000 07AF39CA-659D-3636-4A4A-FE05631AA416 原因:UIKit-runloop-AppStore:超时816ms
命令:AppStore 路径:/Applications/AppStore.app/AppStore 标识符:com.apple.AppStore 版本:3.0(1) 父级:推出[1] PID:4415
持续时间:0.80秒 步骤:16(50ms采样间隔)
硬件型号:J71AP 活动cpus:2
private PHAssetCollection FindAlbum(string title)
{
PHAssetCollection photoAlbum = null;
var fetchOptions = new PHFetchOptions() { Predicate =
NSPredicate.FromFormat(string.Format("title={0}", title)) };
PHFetchResult fetchResult = PHAssetCollection.FetchAssetCollections(PHAssetCollectionType.Album, PHAssetCollectionSubtype.Any, options: fetchOptions);
if (fetchResult.firstObject != null)
{
photoAlbum = (PHAssetCollection)fetchResult.firstObject;
}
return photoAlbum;
}
答案 0 :(得分:0)
我弄清楚发生了什么事以及如何解决它,尽管我不完全理解为什么对象不返回null而是崩溃的原因,也许这是一个错误。
最后,问题在于谓词未正确传递。由于我正在专门寻找自定义相册,因此我还对搜索进行了配对,仅包括RegularAlbums的子类型。
希望这可以帮助C#世界中的其他人:)
private PHAssetCollection FindAlbum(string title)
{
PHAssetCollection photoAlbum = null;
var arguments = new NSObject[] { NSObject.FromObject( title) };
var fetchOptions = new PHFetchOptions() { Predicate = NSPredicate.FromFormat("title=%@", arguments) };
PHFetchResult fetchResult = PHAssetCollection.FetchAssetCollections(PHAssetCollectionType.Album, PHAssetCollectionSubtype.AlbumRegular, fetchOptions);
if (fetchResult.firstObject != null)
{
photoAlbum = (PHAssetCollection)fetchResult.firstObject;
}
return photoAlbum;
}