You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Objective-C项目中使用ALCameraViewController库及转换Swift示例代码

在Objective-C项目中使用ALCameraViewController的完整指南

我来帮你把那段Swift代码转换成Objective-C版本,同时一步步讲解在Objective-C项目里集成和使用这个库的方法。

一、Swift代码的Objective-C等价实现

你给出的Swift代码是创建并弹出相机视图控制器、获取图片后关闭的逻辑,对应的Objective-C代码如下:

// 先弱引用self,避免循环引用
__weak typeof(self) weakSelf = self;

// 创建相机视图控制器,传入回调block
ALCameraViewController *cameraViewController = [[ALCameraViewController alloc] initWithCompletionBlock:^(UIImage *image, PHAsset *asset) {
    // 在这里处理你拿到的图片
    // 比如显示到UIImageView、保存到本地等等
    if (image) {
        NSLog(@"成功获取到图片");
        // 示例:weakSelf.imageView.image = image;
    }
    
    // 关闭相机视图控制器
    [weakSelf dismissViewControllerAnimated:YES completion:nil];
}];

// 弹出相机视图
[self presentViewController:cameraViewController animated:YES completion:nil];

关键细节说明:

  • Objective-C里用__weak typeof(self) weakSelf = self;来实现Swift中[weak self]的弱引用逻辑,避免循环引用问题
  • 回调block的参数UIImage *image对应Swift里的image,PHAsset *asset对应Swift里的asset(如果不需要asset可以直接忽略它)

二、Objective-C项目集成ALCameraViewController的完整步骤

1. 安装库

最方便的方式是用CocoaPods:

  • 在你的Podfile里添加:
    pod 'ALCameraViewController'
    
  • 然后执行pod install命令安装依赖

2. 导入头文件

在需要使用相机的ViewController文件顶部导入:

#import <ALCameraViewController/ALCameraViewController.h>

3. 配置权限

iOS要求必须声明权限描述,否则App会崩溃。在Info.plist中添加以下两个键:

  • NSCameraUsageDescription:填写相机权限的说明(比如"需要访问相机来拍摄照片")
  • NSPhotoLibraryUsageDescription:填写照片库权限的说明(比如"需要访问照片库来保存拍摄的照片")

4. 自定义配置(可选)

如果需要开启图片裁剪、限制相机类型等,可以用其他初始化方法:
比如开启裁剪功能并设置1:1比例:

__weak typeof(self) weakSelf = self;
ALCameraViewController *cameraViewController = [[ALCameraViewController alloc] initWithCroppingEnabled:YES completionBlock:^(UIImage *image, PHAsset *asset) {
    // 处理裁剪后的图片
    [weakSelf dismissViewControllerAnimated:YES completion:nil];
}];
// 设置裁剪框比例为1:1
cameraViewController.croppingAspectRatio = 1.0;
[self presentViewController:cameraViewController animated:YES completion:nil];

或者只允许拍摄照片(禁用视频):

cameraViewController.cameraMediaType = ALCameraMediaTypePhoto;

内容的提问来源于stack exchange,提问作者Saviz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:45:13