Не удается найти объявление протокола NSObject - PullRequest
1 голос
/ 27 сентября 2011

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

Я начинаю с шага 18 и внедряю это в свой код, поскольку это кажется довольно простым ... однако у меня есть эта ошибка в моем файле secondview.h, где я объявляю свой протокол следующим образом.

#import <UIKit/UIKit.h>

@protocol PassSearchData <nsobject> //this is where I get the "Cannot find protocol declaraton for 'nsobject' error
@required
- (void) setSecondFavoriteColor:(NSString *)secondFavoriteColor;
@end


@interface VehicleResultViewController : UITableViewController <NSXMLParserDelegate> {
//...
//Delegate stuff for passing information back to parent view
    id <PassSearchData> delegate;

}
//..
//Delegate stuff for passing information back to parent view
@property (retain) id delegate;
//..
@end
</PassSearchData></nsobject></uikit/uikit.h> //more errors here also..

1 Ответ

2 голосов
/ 27 сентября 2011

Как отметил Малкольм Бокс в комментарии, NSObject (и большинство исходного кода, в этом отношении) чувствительны к регистру. Кроме того, я не уверен, какой должна быть последняя строка с </PassSearchData></nsobject></uikit/ uikit.h>. Я бы предложил что-то вроде следующего:

#import <UIKit/UIKit.h>

@protocol PassSearchData <NSObject>
@required
- (void) setSecondFavoriteColor:(NSString *)secondFavoriteColor;
@end


@interface VehicleResultViewController : UITableViewController <NSXMLParserDelegate> {
//...
//Delegate stuff for passing information back to parent view
    id <PassSearchData> delegate;

}
//..
//Delegate stuff for passing information back to parent view
@property (assign) id <PassSearchData> delegate; // not retain ?
//..
@end

Этот код, вероятно, должен компилироваться, но это не обязательно означает, что он без проблем. Традиционно делегаты не сохраняются из-за проблемы сохранения циклов . Поэтому я изменил объявление свойства delegate с retain на assign.

...