Vol*_*ort 5 objective-c cocos2d-iphone
在Cocos2d中的UITextField示例的解决方案(实际上是最高投票的答案)后,我设法做到了除了线路
[[[UIApplication sharedApplication] delegate] specifyStartLevel];
Run Code Online (Sandbox Code Playgroud)
我把它放在我的场景中,我收到了这个警告:
未找到实例方法'-specifyStartLevel'(返回类型默认为'id')
这是为什么?我清楚地-specifyStartLevel在我的AppDelegate的标题和实现中定义了...
编辑:specifiedStartLevel的声明
#import <UIKit/UIKit.h>
@class RootViewController;
@interface AppDelegate : NSObject <UIApplicationDelegate,UITextFieldDelegate> {
UIWindow *window;
UITextField *levelEntryTextField;
RootViewController *viewController;
}
- (void)specifyStartLevel;
@property (nonatomic, retain) UIWindow *window;
@end
Run Code Online (Sandbox Code Playgroud)
并实施:
- (void)specifyStartLevel
{
[levelEntryTextField setText:@""];
[window addSubview:levelEntryTextField];
[levelEntryTextField becomeFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
sud*_*-rf 15
现在,你的班级对你的委托方法一无所知.您需要将您的委托导入您的实现,而不是您的界面(以避免循环导入).
例如,
#import "AppDelegate.h"
Run Code Online (Sandbox Code Playgroud)
然后,您应该将嵌套方法调用中返回的委托强制转换为委托类型.例如:
[(AppDelegate *)[[UIApplication sharedApplication] delegate] specifyStartLevel];
Run Code Online (Sandbox Code Playgroud)
小智 5
在AppDelegate.h文件中添加您的方法,例如:
- (void)Welcome
Run Code Online (Sandbox Code Playgroud)在AppDelegate.m文件中实现方法,例如:
- (void)Welcome
{
NSLog(@"Welcome")
}
Run Code Online (Sandbox Code Playgroud)UIApplication在方法中设置委托,例如:
AppDelegate *appDelegate=[UIApplication sharedApplication] delegate];
[appDelegate Welcome];
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
11183 次 |
| 最近记录: |