You*_*uri 4 import delegates uiapplicationdelegate ios
我在很多类中导入AppDelegate.h:
#import "AppDelegate.h"
@interface LoginViewController : UIViewController<UITextFieldDelegate>
{
}
@property (nonatomic, retain) AppDelegate *app;
Run Code Online (Sandbox Code Playgroud)
但不知何故,它停止在我的loginviewcontroller.h中工作.它说:
unknown type name 'AppDelegate' [1]
property with 'retain (or strong)' attribute must be of object type [3]
Run Code Online (Sandbox Code Playgroud)
我在一开始就创建了这个课程,它总是像它应该的那样工作.我没有对类进行任何更改,也没有AppDelegate对此错误进行更改.
我可以在其他类中导入它而不会出现问题.我也尝试重新创建课程,但没有帮助.
任何人都知道如何解决这个奇怪的错误?
Lor*_*o B 14
使用这行代码并不是一个好主意
@property (nonatomic, retain) AppDelegate *app;
Run Code Online (Sandbox Code Playgroud)
在每个班级,你需要它.在您需要的地方访问委托应用程序的简单方法是执行以下操作:
AppDelegate* appDel = (AppDelegate*)[[UIApplication sharedApplication] delegate];
Run Code Online (Sandbox Code Playgroud)
显然你需要这样做:
#import "AppDelegate.h"
Run Code Online (Sandbox Code Playgroud)
在你使用它的类中.
如果您想要更简洁的方法,可以在AppDelegate.h中创建类方法,如下所示:
+(AppDelegate*)sharedAppdelegate;
Run Code Online (Sandbox Code Playgroud)
在AppDelegate.m中定义如下:
+(AppDelegate*)sharedAppdelegate
{
return (AppDelegate*)[[UIApplication sharedApplication] delegate];
}
Run Code Online (Sandbox Code Playgroud)
然后,在您需要的地方,您可以调用(在导入AppDelegate.h之后):
AppDelegate* sharedApp = [AppDelegate sharedAppdelegate];
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
PS为什么需要访问代理人?