0

思い通りにプロトコルを構築できないようで、派生クラスの使用に関する問題に絞り込みました。ココアクラスを使えばうまくいくようです。これが私が持っているものです...

#import <Foundation/Foundation.h>
#import "MyView.h"

@protocol MyDelegate  
- (void)view:(MyView *)aView didDoSomethingWithString:(NSString *)string;
@end

MyView クラスは...

#import <UIKit/UIKit.h>
@interface MyView : UIView {  
    NSString *whatever;  
}  
- (void)myMethod;  
@end  

@implementation MyView  
- (void)myMethod {  
 doSomething...  
}  
@end

そのため、ビルドしようとすると、「'MyView' の前に ')' が必要です」というエラーが表示されます。カスタム クラス MyView を UIView に置き換えると、コードがコンパイルされます。私が見落としている何かを誰かが見てくれることを願っています。どんなアイデアでも大歓迎です。

ありがとう。

4

2 に答える 2

2

MyView.h に が含まれています@interface MyView : UIViewか?

また、インポートの代わりに @class を使用できます。例えば

@class MyView;
@protocol MyDelegate
- (void)view:(MyView *)aView didDoSomethingWithString:(NSString *)string;
@end
于 2011-01-31T02:45:11.517 に答える
1

@interface と @implementation の部分を別のファイルに入れてみてください (現在それらが同じファイルにある場合)。MyView.m にすべてが含まれているように見えますが、存在しない MyView.h をインポートしています。

于 2011-01-31T02:48:25.033 に答える