Ios 向新控制器添加新委托时出现问题
我正在尝试找出如何在LocationViewController和SetCorringTableViewController中获取代理,并在GameDetailsTableViewController中实现这两个代理。LocationViewControllerDelegate已在工作,但当我添加新的SetCoringTableViewController时,程序出现错误 LocationViewController.hIos 向新控制器添加新委托时出现问题,ios,objective-c,Ios,Objective C,我正在尝试找出如何在LocationViewController和SetCorringTableViewController中获取代理,并在GameDetailsTableViewController中实现这两个代理。LocationViewControllerDelegate已在工作,但当我添加新的SetCoringTableViewController时,程序出现错误 LocationViewController.h #import "ViewController.h" @class Lo
#import "ViewController.h"
@class LocationViewController;
@protocol LocationViewControllerDelegate <NSObject>
- (void)addItemViewController:(LocationViewController *)controller didFinishEnteringItem:(NSString *)name;
@end
@interface LocationViewController : UIViewController
@property (nonatomic, weak) id <LocationViewControllerDelegate> delegate;
@end
#import <UIKit/UIKit.h>
#import "GameDetailsTableViewController.h"
#import "LocationViewController.h"
@class SetScoringTableViewController;
@protocol SetScoringTableViewControllerDelegate <NSObject>
- (void)addItemViewControllerSS:(SetScoringTableViewController *)SScontroller didFinishEnteringItemSS:(NSString *)SSname;
@end
@interface SetScoringTableViewController : UITableViewController
@property (nonatomic, strong) id <SetScoringTableViewControllerDelegate> SSdelegate;
@end
#import <UIKit/UIKit.h>
#import "LocationViewController.h"
#import "SetScoringTableViewController.h"
@interface MainViewController : UITableViewController <LocationViewControllerDelegate, SetScoringTableViewControllerDelegate>
#import "GameDetailsTableViewController.h"
#import "SetScoringTableViewController.h"
设置CorringTableViewController.h
#import "ViewController.h"
@class LocationViewController;
@protocol LocationViewControllerDelegate <NSObject>
- (void)addItemViewController:(LocationViewController *)controller didFinishEnteringItem:(NSString *)name;
@end
@interface LocationViewController : UIViewController
@property (nonatomic, weak) id <LocationViewControllerDelegate> delegate;
@end
#import <UIKit/UIKit.h>
#import "GameDetailsTableViewController.h"
#import "LocationViewController.h"
@class SetScoringTableViewController;
@protocol SetScoringTableViewControllerDelegate <NSObject>
- (void)addItemViewControllerSS:(SetScoringTableViewController *)SScontroller didFinishEnteringItemSS:(NSString *)SSname;
@end
@interface SetScoringTableViewController : UITableViewController
@property (nonatomic, strong) id <SetScoringTableViewControllerDelegate> SSdelegate;
@end
#import <UIKit/UIKit.h>
#import "LocationViewController.h"
#import "SetScoringTableViewController.h"
@interface MainViewController : UITableViewController <LocationViewControllerDelegate, SetScoringTableViewControllerDelegate>
#import "GameDetailsTableViewController.h"
#import "SetScoringTableViewController.h"
gamedetailstablevewcontroller.h
#import "ViewController.h"
@class LocationViewController;
@protocol LocationViewControllerDelegate <NSObject>
- (void)addItemViewController:(LocationViewController *)controller didFinishEnteringItem:(NSString *)name;
@end
@interface LocationViewController : UIViewController
@property (nonatomic, weak) id <LocationViewControllerDelegate> delegate;
@end
#import <UIKit/UIKit.h>
#import "GameDetailsTableViewController.h"
#import "LocationViewController.h"
@class SetScoringTableViewController;
@protocol SetScoringTableViewControllerDelegate <NSObject>
- (void)addItemViewControllerSS:(SetScoringTableViewController *)SScontroller didFinishEnteringItemSS:(NSString *)SSname;
@end
@interface SetScoringTableViewController : UITableViewController
@property (nonatomic, strong) id <SetScoringTableViewControllerDelegate> SSdelegate;
@end
#import <UIKit/UIKit.h>
#import "LocationViewController.h"
#import "SetScoringTableViewController.h"
@interface MainViewController : UITableViewController <LocationViewControllerDelegate, SetScoringTableViewControllerDelegate>
#import "GameDetailsTableViewController.h"
#import "SetScoringTableViewController.h"
运行此操作时,我遇到一个错误:无法找到“SetCoringTableViewControllerDelegate”的协议声明,即使我已经找到了。
我发现解决此问题的唯一方法是将SetCoringTableViewController委托放在LocationView控制器中,但我知道这是不对的。任何帮助都将不胜感激。尝试在不同的.h文件中分离该委托。尝试在不同的.h文件中分离该委托。您有一个依赖项循环: 设置CorringTableViewController.h
#import "ViewController.h"
@class LocationViewController;
@protocol LocationViewControllerDelegate <NSObject>
- (void)addItemViewController:(LocationViewController *)controller didFinishEnteringItem:(NSString *)name;
@end
@interface LocationViewController : UIViewController
@property (nonatomic, weak) id <LocationViewControllerDelegate> delegate;
@end
#import <UIKit/UIKit.h>
#import "GameDetailsTableViewController.h"
#import "LocationViewController.h"
@class SetScoringTableViewController;
@protocol SetScoringTableViewControllerDelegate <NSObject>
- (void)addItemViewControllerSS:(SetScoringTableViewController *)SScontroller didFinishEnteringItemSS:(NSString *)SSname;
@end
@interface SetScoringTableViewController : UITableViewController
@property (nonatomic, strong) id <SetScoringTableViewControllerDelegate> SSdelegate;
@end
#import <UIKit/UIKit.h>
#import "LocationViewController.h"
#import "SetScoringTableViewController.h"
@interface MainViewController : UITableViewController <LocationViewControllerDelegate, SetScoringTableViewControllerDelegate>
#import "GameDetailsTableViewController.h"
#import "SetScoringTableViewController.h"
gamedetailstablevewcontroller.h
#import "ViewController.h"
@class LocationViewController;
@protocol LocationViewControllerDelegate <NSObject>
- (void)addItemViewController:(LocationViewController *)controller didFinishEnteringItem:(NSString *)name;
@end
@interface LocationViewController : UIViewController
@property (nonatomic, weak) id <LocationViewControllerDelegate> delegate;
@end
#import <UIKit/UIKit.h>
#import "GameDetailsTableViewController.h"
#import "LocationViewController.h"
@class SetScoringTableViewController;
@protocol SetScoringTableViewControllerDelegate <NSObject>
- (void)addItemViewControllerSS:(SetScoringTableViewController *)SScontroller didFinishEnteringItemSS:(NSString *)SSname;
@end
@interface SetScoringTableViewController : UITableViewController
@property (nonatomic, strong) id <SetScoringTableViewControllerDelegate> SSdelegate;
@end
#import <UIKit/UIKit.h>
#import "LocationViewController.h"
#import "SetScoringTableViewController.h"
@interface MainViewController : UITableViewController <LocationViewControllerDelegate, SetScoringTableViewControllerDelegate>
#import "GameDetailsTableViewController.h"
#import "SetScoringTableViewController.h"
但是看起来您可以删除导入GameDetailsStableViewController.h,因为头文件中没有提到它。您有一个依赖循环: 设置CorringTableViewController.h
#import "ViewController.h"
@class LocationViewController;
@protocol LocationViewControllerDelegate <NSObject>
- (void)addItemViewController:(LocationViewController *)controller didFinishEnteringItem:(NSString *)name;
@end
@interface LocationViewController : UIViewController
@property (nonatomic, weak) id <LocationViewControllerDelegate> delegate;
@end
#import <UIKit/UIKit.h>
#import "GameDetailsTableViewController.h"
#import "LocationViewController.h"
@class SetScoringTableViewController;
@protocol SetScoringTableViewControllerDelegate <NSObject>
- (void)addItemViewControllerSS:(SetScoringTableViewController *)SScontroller didFinishEnteringItemSS:(NSString *)SSname;
@end
@interface SetScoringTableViewController : UITableViewController
@property (nonatomic, strong) id <SetScoringTableViewControllerDelegate> SSdelegate;
@end
#import <UIKit/UIKit.h>
#import "LocationViewController.h"
#import "SetScoringTableViewController.h"
@interface MainViewController : UITableViewController <LocationViewControllerDelegate, SetScoringTableViewControllerDelegate>
#import "GameDetailsTableViewController.h"
#import "SetScoringTableViewController.h"
gamedetailstablevewcontroller.h
#import "ViewController.h"
@class LocationViewController;
@protocol LocationViewControllerDelegate <NSObject>
- (void)addItemViewController:(LocationViewController *)controller didFinishEnteringItem:(NSString *)name;
@end
@interface LocationViewController : UIViewController
@property (nonatomic, weak) id <LocationViewControllerDelegate> delegate;
@end
#import <UIKit/UIKit.h>
#import "GameDetailsTableViewController.h"
#import "LocationViewController.h"
@class SetScoringTableViewController;
@protocol SetScoringTableViewControllerDelegate <NSObject>
- (void)addItemViewControllerSS:(SetScoringTableViewController *)SScontroller didFinishEnteringItemSS:(NSString *)SSname;
@end
@interface SetScoringTableViewController : UITableViewController
@property (nonatomic, strong) id <SetScoringTableViewControllerDelegate> SSdelegate;
@end
#import <UIKit/UIKit.h>
#import "LocationViewController.h"
#import "SetScoringTableViewController.h"
@interface MainViewController : UITableViewController <LocationViewControllerDelegate, SetScoringTableViewControllerDelegate>
#import "GameDetailsTableViewController.h"
#import "SetScoringTableViewController.h"
但是看起来您可以删除导入GameDetailsStableViewController.h,因为头文件中没有提到它。您正在经历的是一个导入周期。打破导入循环 删除此导入行:
#import "GameDetailsTableViewController.h"
从SetCoringTableViewController.h中,将其放入.m文件中。您所经历的是一个导入周期。打破导入循环 删除此导入行:
#import "GameDetailsTableViewController.h"
从SetScoringTableViewController.h,并将其放入.m文件中