1

これが私のプロトコルです

#import <UIKit/UIKit.h>
#import "HypnosisterView.h"

@interface HypnosisterAppDelegate : UIResponder <UIApplicationDelegate,UIScrollViewDelegate>
{
HypnosisterView *view;
}

@property (strong, nonatomic) UIWindow *window;

@end

これはデリゲートの実装です

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.

CGRect screenRect = [[self window]bounds];

UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:screenRect];

[scrollView setMaximumZoomScale:1.0];
[scrollView setMaximumZoomScale:5.0];

[scrollView setDelegate:self];

[[self window]addSubview:scrollView];

CGRect bigRect = screenRect;
view = [[HypnosisterView alloc]initWithFrame:screenRect];
[scrollView addSubview:view];
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return view;
}

[scrollView setContentSize:bigRect.size];


BOOL success = [view becomeFirstResponder];
if (success) {
    NSLog(@"HypnosisView became the first responder");
}else{
    NSLog(@"Couldn't become first responder");
}


self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}

プロトコルを確認した後でも、宣言されていない識別子viewForZoomingInScrollView. 私はアップルのドキュメントからこのメソッドをコピーし、そのデリゲートの定義にジャンプして相互検証しました。宣言されていないことを示しているため、自動提案にも表示されません。私を助けてください。感謝。

4

1 に答える 1

1

エラーに気づいたときに自分を蹴るかもしれません。あなたのコードを実装しましたが、同じエラーが発生しました。メソッドをオーバーライドしているため、.h ファイルで宣言する必要はないという事実にもかかわらず、とにかくこれを行うことにしました。まだ、未発表。

この時点で、-(BOOL)application:applicationDidFinishLaunchingWithOptions メソッド内に「viewForZoomingInScrollView」のメソッドを記述したことに気付きました。そこで、そこから削除して上に置き、問題を解決しました。

tldr: viewForZoomingInScrollView メソッドを削除します

-(BOOL)application:applicationDidFinishLaunchingWithOptions メソッド。

于 2013-11-25T12:35:20.670 に答える