Создание методов делегата в протоколе - PullRequest
0 голосов
/ 31 января 2011

Я не могу построить свой протокол так, как хотел бы, и я сузился до проблемы с использованием производных классов. Если я использую класс какао, это, кажется, работает. Вот что у меня есть ...

#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, то код компилируется. Я надеюсь, что кто-то видит то, что я пропускаю. Любые идеи приветствуются.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 31 января 2011

Вы уверены, что MyView.h содержит @interface MyView : UIView?

Кроме того, вместо импорта вы можете использовать @class. например,

@class MyView;
@protocol MyDelegate
- (void)view:(MyView *)aView didDoSomethingWithString:(NSString *)string;
@end
1 голос
/ 31 января 2011

Попробуйте поместить части @interface и @implementation в разные файлы (если они у вас есть в одном файле).Похоже, у вас есть все это в MyView.m, и вы импортируете MyView.h, которого не существует.

...