私は2つのクラスを持っています。一つはビューコントローラ、もう一つは非同期プロセスを実行するNSObjectクラスです。 IBAction、UIを更新します。私は、この機能をモジュール化して、後の段階で使いやすくしたかったのです。 Objective-cでこれを行う方法はありますか?別のクラスが必要なデータを処理し終わったときにViewControllerを中断する方法
CircleDetectionViewController.h:
#import <UIKit/UIKit.h>
#import "CameraController.h"
@interface CircleDetectionViewController : UIViewController <MyDelegate>
@property (weak, nonatomic) IBOutlet UIImageView *screenPreview;
@end
CircleViewController.mm:
@interface CircleDetectionViewController() <CvVideoCameraDelegate>
@end
@implementation CircleDetectionViewController
CvVideoCamera *camera;
//code
@end
CameraController.h:
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
#import "CircleDetectionViewController.h"
@protocol MyDelegate <NSObject>
-(void) updateUI;
@end
@interface CameraController : NSObject <MyDelegate>
@property (nonatomic, strong) AVCaptureDevice *inputDevice;
@property (nonatomic, strong) AVCaptureSession *session;
@property (nonatomic, strong) AVCaptureStillImageOutput *photoOutput;
@property (nonatomic, weak) id <MyDelegate> delegate;
@end
CameraController.m:
#import "CameraController.h"
#import "FlashHelper.h"
#import "ImageProcessor.h"
@implementation CameraController
@synthesize delegate;
FlashHelper *Flash;
ImageProcessor *IMGProcessor;
int shootCounter;
int NUMSHOTS = 2;
-(id)init{
//code
}
何らかの理由でコードに「MyDelegateという名前のプロトコルまたはプロトコルがありません」というメッセージが表示されます NSObjectクラスで
デリゲートまたはコールバック/完了ブロックを使用します。それはあなたがGoogleを簡単に理解し、理解した上で使用できる用語でなければなりません。 – luk2302
デリゲートパターンの完璧な時間! https://developer.apple.com/library/content/documentation/General/Conceptual/CocoaEncyclopedia/DelegatesandDataSources/DelegatesandDataSources.html – DonMag
私のビューコントローラにはすでにopenCVのデリゲートが使用されています。自分のカスタムデリゲートを引き続き使用できますか? –