在iphone上缓慢但肯定地获得这个授权和协议,但我无法理解这个错误。
我在我的第一个视图控制器中声明了我的协议。
在第二个视图控制器中,在将其导入头文件之后,我尝试将其添加到顶部,但它找不到它。请看下面的代码。
//SendSMS
#import <UIKit/UIKit.h>
#import "LoginPage.h"
#import "MessageOptions.h"
@protocol SMSProtocol <NSObject>
-(NSString *)postbackType;
@end
@interface SendSMS : UIViewController <UITextViewDelegate, UITextFieldDelegate> {
id<SMSProtocol> delegate;
MessageOptions *messageOptions;
LoginPage *loginPage;
IBOutlet UITextField *phonenumber;
IBOutlet UITextView *smsBody;
IBOutlet UIScrollView *scrollview;
}
@property (nonatomic, retain) id<SMSProtocol> delegate;
-(IBAction)LoadMessageOptions;
@end然后我的第二个观点
#import <UIKit/UIKit.h>
#import "SendSMS.h"
@interface ScheduledSMS : UIViewController <SMSProtocol>{
}
-(IBAction)popBack;
@end发布于 2011-08-05 10:44:48
这肯定很奇怪。你试过重新启动Xcode吗?当我添加新文件时,Xcode有一种不为我索引符号的习惯。
您还应该了解您的命名约定。SendSMS实际上不是一个好的类名,更多的是一个动作方法的名称。我会选择SendSMSViewController,因为它就是这样的。
这样,SMSProtocol就应该被命名为SendSMSViewControllerDelegate,因为它就是这样的。
委托协议中的方法应该包含发送方和其中的一个单词will、did或应该。如果不是的话,至少它应该说出它希望返回的内容。-(NSString *)postbackType;可能应该是-(NSString *)postbackTypeForSendSMSViewController:(SendSMSViewController*)controller;。
https://stackoverflow.com/questions/6954895
复制相似问题