我已经创建了一个自定义相册,现在我正在尝试从FTP站点下载一个视频,并将其移到自定义相册中。
我正在使用VisualStudio2017 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内核缓存:0 Source 0000000 07AF39CA-659D-3636-4A4A-FE05631AA416原因:UIKit AppStore:超时值816 PET
命令:/ AppStore路径/AppStore.app/AppStore标识符: com.apple.AppStore版本: 3.0 (1)父: launchd 1 PID: 4415
持续时间:0.8级: 16次(50毫秒采样间隔)
硬件模型: 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;
}发布于 2018-06-26 02:56:03
我弄清楚了发生了什么,以及如何解决它,尽管我不完全理解为什么对象不返回null,而是崩溃,也许这是一个bug。
最后,问题是谓词没有被正确地传递。我还配对搜索,以包括子类型的只有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;
}https://stackoverflow.com/questions/51030478
复制相似问题