我在定义时似乎失去了静态输入能力,
#define myAppDelegate (WorkClockAppDelegate *) [[UIApplication sharedApplication] delegate]
要做到这一点,
[myAppDelegate doSomething];
Xcode不知道 doSomething 是什么,虽然只要我知道我在做什么就会编译并运行正常,并且myAppDelegate上实际存在 doSomething !
有什么方法可以克服这个问题吗?
答案 0 :(得分:1)
你不会失去它,不 - 你可能省略了#import
,或者#import
的顺序可能是错误的。
有什么方法可以克服这个问题吗?
只需使用一个功能:
WorkClockAppDelegate * myAppDelegate() {
// TODO add error checking
return (WorkClockAppDelegate *) [[UIApplication sharedApplication] delegate];
}
或方法:
+ (WorkClockAppDelegate *)workClockAppDelegate {
// TODO add error checking
return (WorkClockAppDelegate *) [[UIApplication sharedApplication] delegate];
}
引入类型安全。
虽然您可以使用extern
变量,但这不是很安全。
使用#define
不是一个好的解决方案,imo。