Objective-c:在协议成员声明中使用自定义类型



请考虑以下标头(LessonDelegate.h(:

#import "Lesson.h"
#ifndef BirdEye_LessonDelegate_h
#define BirdEye_LessonDelegate_h

@protocol LessonDelegate <NSObject>
- (BOOL) lesson:(Lesson*)lesson didRequestNavigation:(NSString*) url;
@end
#endif

它在这里给出了一个错误:

- (布尔(课程:(课程*(

课程做了请求导航:(NSString*(网址;

说"期待一种类型"。它抱怨课程类型,即使它被声明并成功用于其他类。

Lesson.h是它应该在的位置(同一个文件夹(,看起来像这样:

#import <Foundation/Foundation.h>
#import "SimpleManifest.h"
#import "Activity.h"
#import "LessonDelegate.h"
@interface Lesson : Activity
@property (retain, nonatomic) NSString *url;
@property (retain, nonatomic) SimpleManifest *manifest;
@property (retain, nonatomic, readonly) Activity *runningActivity;
@property (weak) id<LessonDelegate> delegate;
- (id) initWithUrl:(NSString*) aurl;
- (NSString*) deteails;
@end

我的错误在哪里?

LessonDelegate.h

@class Lesson; // there was a missing ; here
@protocol LessonDelegate <NSObject>
- (BOOL) lesson:(Lesson*)lesson didRequestNavigation:(NSString*) url;
@end

课.h

#import <Foundation/Foundation.h>
#import "SimpleManifest.h"
#import "Activity.h"
#import "LessonDelegate.h"
@interface Lesson : Activity
@property (retain, nonatomic) NSString *url;
@property (retain, nonatomic) SimpleManifest *manifest;
@property (retain, nonatomic, readonly) Activity *runningActivity;
@property (weak) id<LessonDelegate> delegate;
- (id) initWithUrl:(NSString*) aurl;
- (NSString*) deteails;
@end

最新更新