Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSObject类中未调用iOS委托方法_Objective C_Delegates_Avfoundation - Fatal编程技术网

Objective c NSObject类中未调用iOS委托方法

Objective c NSObject类中未调用iOS委托方法,objective-c,delegates,avfoundation,Objective C,Delegates,Avfoundation,我想在没有预览的情况下从相机拍摄一张照片 尽管我能够在AVFoundation框架的帮助下使用UIViewController完成这项工作 但是现在我必须在没有ViewController的情况下执行同样的操作 #发行 当我尝试对NSObject类执行相同操作时,不会调用AVCapturePhotoCaptureDelegate 测试摄像机 #import <AVFoundation/AVFoundation.h> NS_ASSUME_NONNULL_BEGIN @interfa

我想在没有预览的情况下从相机拍摄一张照片

尽管我能够在AVFoundation框架的帮助下使用UIViewController完成这项工作

但是现在我必须在没有ViewController的情况下执行同样的操作

#发行

当我尝试对NSObject类执行相同操作时,不会调用AVCapturePhotoCaptureDelegate

测试摄像机

#import <AVFoundation/AVFoundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface TestingCamera : NSObject <AVCapturePhotoCaptureDelegate> {
    AVCaptureSession *captureSession;
    AVCapturePhotoOutput *photoOutput;
    AVCapturePhotoSettings *photoSetting;
    AVCaptureConnection *captureConnection;
}

@property(nonatomic, assign) id <AVCapturePhotoCaptureDelegate> delegate;
- (void) takePictureWithNoPreviewFrontFacingCamera;

@end

NS_ASSUME_NONNULL_END

我从另一个ViewController调用该方法,如下所示

- (IBAction) testPicture:(id)sender {
    TestingCamera *noPreviewCamera = [[TestingCamera alloc] init];
    [noPreviewCamera takePictureWithNoPreviewFrontFacingCamera];
}

猜测:对象将在调用委托方法之前释放。尝试将TestingCamera*noPreviewCamera声明为@property(非原子,字符串),TestingCamera*noPreviewCamera;`例如,正是。。。。。感谢lotGuess:对象将在调用委托方法之前释放。尝试将TestingCamera*noPreviewCamera声明为@property(非原子,字符串),TestingCamera*noPreviewCamera;`例如,正是。。。。。谢谢
- (IBAction) testPicture:(id)sender {
    TestingCamera *noPreviewCamera = [[TestingCamera alloc] init];
    [noPreviewCamera takePictureWithNoPreviewFrontFacingCamera];
}