0

PhotoPicker のサンプル コードでは、オーバーレイ ビューを使用しています以下は、アプリで使用している PhotoPicker の関連コードですが、 ARCを使用したいのですが、 PhotoPicker は ARC を使用していません。PhotoPicker と ARC の間の他の競合は回避できたと思いますが、これは回避できませんでした。

以下のOverlayViewController.h行をそのまま使用するid <OverlayViewControllerDelegate> delegate;と、エラーが発生しますExisting ivar 'delegate' for property 'delegate' with assign attribute must be __unsafe_unretained

OverlayViewController.h

#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioServices.h>

@protocol OverlayViewControllerDelegate;

@interface OverlayViewController : UIViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate>
{
    id <OverlayViewControllerDelegate> delegate;  // **THIS IS THE KEY LINE**
}    

@property (nonatomic, assign) id <OverlayViewControllerDelegate> delegate;
@property (nonatomic, retain) UIImagePickerController *imagePickerController;

- (void)setupImagePicker:(UIImagePickerControllerSourceType)sourceType;

@end

@protocol OverlayViewControllerDelegate
- (void)didTakePicture:(UIImage *)picture;
- (void)didFinishWithCamera;
@end

しかし、アドバイス here に従い、その行をコメントアウトするか、その行の先頭に を追加すると__unsafe_unretained、問題が発生Cannot find protocol declaration for 'OverlayViewControllerDelegate'; did you mean 'UISplitViewControllerDelegate'?MyViewController.hます。

MyViewController.h

#import <UIKit/UIKit.h>

#import "OverlayViewController.h"

@interface MyViewController : UIViewController <UIImagePickerControllerDelegate, OverlayViewControllerDelegate>
@end
4

1 に答える 1

0

私の質問に誤りがありました。本当にごめんなさい。実際のコードでは、どういうわけか#import "OverlayViewController.h省略されていました。

MyViewController.h

#import <UIKit/UIKit.h>

#import "OverlayViewController.h"
于 2013-02-22T15:19:57.650 に答える