Dav*_*d L 78 delegates objective-c ios
在我的应用程序中,当我设置时,我会收到语义问题警告ViewController.delegate = self.我搜索过并发现了类似的帖子,但没有一个能够解决我的问题.
ViewController.m:
GameAddViewController *gameAddViewContoller = [[navigationController viewControllers] objectAtIndex:0];
gameAddViewContoller.delegate=self;
Run Code Online (Sandbox Code Playgroud)
我在设置时收到错误消息.delegate=self.
GameAddViewController.h:
@protocol GameAddViewControllerDelegate <NSObject>
- (void)gameAddViewControllerDidCancel:(GameAddViewController *)controller;
- (void)gameAddViewController:(GameAddViewController *)controller didAddGame:(Game *) game;
@end
@interface GameAddViewController : UITableViewController <GameAddViewControllerDelegate>
{
sqlite3 *pitchcountDB;
NSString *dbPath;
}
@property (nonatomic, strong) id <GameAddViewControllerDelegate> delegate;
...
@end
Run Code Online (Sandbox Code Playgroud)
ViewController.h:
#import "GameAddViewController.h"
@class ViewController;
@protocol ViewControllerDelegate <NSObject>
- (void)ViewControllerDidCancel:(ViewController *)controller;
@end
@interface ViewController : UIViewController <ViewControllerDelegate>
-(void) checkAndCreateFile;
@end
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出我正确的方向来解决警告信息吗?
gio*_*shc 79
在这一行:
gameAddViewContoller.delegate=self;
Run Code Online (Sandbox Code Playgroud)
请注意,self属于ViewController不符合GameAddViewController协议的类型.
Rau*_*ndo 60
对我来说最终发生的事情是我没有将代理添加到我的头文件中的@interface
例如
@interface TheNameOfYourClass : UIViewController <TheDelegatorClassDelegate>
@end
Run Code Online (Sandbox Code Playgroud)
bor*_*den 12
您将<GameAddViewControllerDelegate>放在错误的位置.它不在GameAddViewController上,它继续在ViewController上运行.