Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Objective-C iOS采用多种协议_Ios_Objective C - Fatal编程技术网

使用Objective-C iOS采用多种协议

使用Objective-C iOS采用多种协议,ios,objective-c,Ios,Objective C,所以,我在自学iOS开发和Objective-C。我对Xcode和Objective-C完全陌生,但不懂编程 我可能完全错了,但我正在尝试从父视图控制器从子视图控制器调用一个方法。我尝试使用委托,但遇到了在同一个类中采用不同类型的多个协议的问题。因为我的父视图控制器中有一个表视图,所以我不确定如何采用我的子视图控制器委派 基本上,我想同时采用这两种方法: @interface MainViewController : NSObject <AddSiteViewControllerDeleg

所以,我在自学iOS开发和Objective-C。我对Xcode和Objective-C完全陌生,但不懂编程

我可能完全错了,但我正在尝试从父视图控制器从子视图控制器调用一个方法。我尝试使用委托,但遇到了在同一个类中采用不同类型的多个协议的问题。因为我的父视图控制器中有一个表视图,所以我不确定如何采用我的子视图控制器委派

基本上,我想同时采用这两种方法:

@interface MainViewController : NSObject <AddSiteViewControllerDelegate>
@interface MainViewController:NSObject

@interface MainViewController:UIViewController

我对这门语言还不熟悉,所以这个问题可能有一个简单的答案。

既然您想同时使用这两种语言,那么必须如下所示

@interface MainViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, AddSiteViewControllerDelegate >
@interface MainViewController:UIViewController

UIViewController是NSObject的子对象,因此通过继承UIViewController,您将获得NSObject中定义的行为。

由于您希望同时使用这两种行为,因此必须如下所示

@interface MainViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, AddSiteViewControllerDelegate >
@interface MainViewController:UIViewController

UIViewController是NSObject的子对象,因此通过继承UIViewController,可以获得NSObject中定义的行为。

Objective-C仅支持单一继承。也就是说,一个给定的类只能从另一个类派生。然而,一个类可以实现任意数量的协议。因此,解决您的问题的简单方法是:

@interface MainViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, AddSiteViewControllerDelegate>
@interface MainViewController:UIViewController

Objective-C仅支持单一继承。也就是说,一个给定的类只能从另一个类派生。然而,一个类可以实现任意数量的协议。因此,解决您的问题的简单方法是:

@interface MainViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, AddSiteViewControllerDelegate>
@interface MainViewController:UIViewController

您不能从两个不同的类继承。您不能从两个不同的类继承。谢谢,这回答了我的问题,但现在我的代码找不到委派协议。所以,我将这个标记为正确的,因为这是我所问问题的解决方案。谢谢,这回答了我的问题,但现在我的代码找不到委派协议。所以,我把这个标记为正确的,因为它是我所问问题的解决方案。