小编gab*_*ler的帖子

PHAssetCollection fetchAssetCollectionsWithType崩溃

以下方法放在默认的全局队列中,以便从设备中获取一些照片.如果系统版本大于iOS 8,Photos则使用框架,否则ALAssetLibrary.

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

dispatch_async(dispatch_get_global_queue(0, 0), ^{
   [self getPhotos:^(NSArray *photos) {
       dispatch_semaphore_signal(sema);
    }];
}

dispatch_time_t timeout = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(10 * NSEC_PER_SEC));

dispatch_semaphore_wait(sema, timeout);


- (void)getPhotos:(MyCallBack)callback {

  Class PHPhotoLibrary_class = NSClassFromString(@"PHPhotoLibrary");

   if (PHPhotoLibrary_class) {

    PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];


    if (status != PHAuthorizationStatusAuthorized)
    {
        return;
    }

    PHFetchResult *smartAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary options:nil];

  }       
}
Run Code Online (Sandbox Code Playgroud)

应用程序崩溃,在64位设备上,如iPhone 5S和更新型号,堆栈跟踪就是这样的.

Exception Type:  SIGTRAP
Exception Codes: TRAP_BRKPT at 0x190c41b60
Crashed Thread:  25

Thread 25 Crashed:
0   PhotoLibraryServices            0x0000000190c41b60 +[PLModelMigrator …
Run Code Online (Sandbox Code Playgroud)

objective-c ios photosframework

7
推荐指数
1
解决办法
1262
查看次数

Xcode 6.1快速自动完成和代码感破坏

我正在使用Xcode Version 6.1 (6A1052d),它运行良好,除了唯一的问题是自动完成并且代码意识被打破了swift项目.

我可以通过删除得到的数据和文件夹的解决它~/Library/Caches/com.apple.dt.Xcode,其被描述在这里,或者改变deployment target从项目8.18.0.

但是,第一个解决方案只持续了1或2天,从不再无效的地方开始,我不想经常删除文件夹或一直更改目标iOS版本.请帮我.

xcode ios swift ios8 ios8.1

6
推荐指数
1
解决办法
2904
查看次数

Unarchive UIImage对象在iOS 8上使用NSKeyedUnarchiver返回CGSizeZero图像

我有这个代码在iOS 7上工作:

NSData *imageData = [NSKeyedArchiver archivedDataWithRootObject:self.imageView.image];
UIImage *imageCopy = [NSKeyedUnarchiver unarchiveObjectWithData:imageData];
NSLog(@"%@",NSStringFromCGSize(imageCopy.size));
Run Code Online (Sandbox Code Playgroud)

但在iOS 8上,其imageCopy大小始终为零.UIImageView存档时也会发生同样的事情,未归档的imageView图像的大小为零.我发现在iOS 7中,UIImage标题如下:

UIImage : NSObject <NSSecureCoding, NSCoding>
Run Code Online (Sandbox Code Playgroud)

但在iOS 8上它是:

UIImage : NSObject <NSSecureCoding>
Run Code Online (Sandbox Code Playgroud)

看起来NSCodingiOS 8上缺少协议.我必须对实际图像数据进行编码:UIImagePNGRepresentation(self.imageView.image)而不是图像,以确保我得到一个好的图像.

有谁知道为什么会这样?它是为了向后兼容吗?我注意到iOS早期版本UIImage不符合NSCoding.

xcode objective-c uiimage ios ios8

5
推荐指数
1
解决办法
1179
查看次数

使用UIActivityViewController共享视​​频时,视频未附加邮件

我使用下面的代码分享位于设备上的视频,它非常适合通过消息,Facebook和iCloud共享,但不适用于邮件,我可以看到邮件选项在那里,但在邮件草稿中,视频不是连接.

在代码中,videoAsset是一种PHAsset类型PHAssetMediaTypeVideo.

[[PHImageManager defaultManager] requestAVAssetForVideo:videoAsset options:nil resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
    AVURLAsset* urlAsset = (AVURLAsset*)asset;
    fileUrl = urlAsset.URL;
    NSLog(@"fileUrl is %@",fileUrl);

    NSArray *activityItems = [NSArray arrayWithObjects:fileUrl, nil];

    UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
    [self presentViewController:activityViewController animated:YES completion:nil];
}];
Run Code Online (Sandbox Code Playgroud)

如果我使用附加视频UIImagePickerController,它有效,我搜索但找不到答案,请帮忙.

email video objective-c ios uiactivityviewcontroller

5
推荐指数
1
解决办法
2989
查看次数

Xcode 10 如何使用带有 obfuscator-llvm 插件的新构建系统

我按照integration-into-xcode 中的教程进行操作,它适用于 Xcode 9,在 Xcode 10 中,选择 File -> Project/Workspace Setting,有一个 Build System 选项,默认选择新的构建系统,使用此默认设置, clang 路径始终设置为/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clangExecPathObfuscator.xcspec 文件中的值不受尊重,如何使其与新构建系统一起使用?

xcode llvm llvm-clang ios xcode10

5
推荐指数
1
解决办法
766
查看次数