首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到协议声明自定义协议委托iphone

找不到协议声明自定义协议委托iphone
EN

Stack Overflow用户
提问于 2011-08-05 10:27:26
回答 1查看 3.2K关注 0票数 1

在iphone上缓慢但肯定地获得这个授权和协议,但我无法理解这个错误。

我在我的第一个视图控制器中声明了我的协议。

在第二个视图控制器中,在将其导入头文件之后,我尝试将其添加到顶部,但它找不到它。请看下面的代码。

//SendSMS

代码语言:javascript
复制
#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

然后我的第二个观点

代码语言:javascript
复制
#import <UIKit/UIKit.h>
#import "SendSMS.h"

@interface ScheduledSMS : UIViewController <SMSProtocol>{



}


-(IBAction)popBack;

@end
EN

回答 1

Stack Overflow用户

发布于 2011-08-05 10:44:48

这肯定很奇怪。你试过重新启动Xcode吗?当我添加新文件时,Xcode有一种不为我索引符号的习惯。

您还应该了解您的命名约定。SendSMS实际上不是一个好的类名,更多的是一个动作方法的名称。我会选择SendSMSViewController,因为它就是这样的。

这样,SMSProtocol就应该被命名为SendSMSViewControllerDelegate,因为它就是这样的。

委托协议中的方法应该包含发送方和其中的一个单词will、did或应该。如果不是的话,至少它应该说出它希望返回的内容。-(NSString *)postbackType;可能应该是-(NSString *)postbackTypeForSendSMSViewController:(SendSMSViewController*)controller;

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6954895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档