我有一个非常奇怪的问题。让我先把代码发给你
在我的appdelegate.h
#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
#import "SecondViewController.h"
@class MasterViewController;
@class DetailViewController1;
@interface TestAppDelegate : NSObject <UIApplicationDelegate> {
NSTimer *tempTimer;
}
@property(nonatomic, retain) NSTimer *tempTimer;
-(void)test;
@end
In my app delegate .m
@synthesize tempTimer
在我的SecondViewController.h
@class TestAppDelegate;
@interface SecondViewController : UIViewController
{
TestAppDelegate *appDel;
NSTimer *aTimer;
}
@property (nonatomic, retain) NSTimer *aTimer;
@end
在我的SecondViewController.m
中@synthesize aTimer, appDel;
在viewDidload
方法
appDel =(TestAppDelegate *)[[UIApplication sharedApplication] delegate];
self.aTimer = appDel.tempTimer;
现在我收到以下错误
*在“TestAppDelegate ”类型的对象上找不到属性“tempTimer”
答案 0 :(得分:1)
原因是,您已在SecondViewController中声明了TestAppDelegate,因此无法访问这些属性。我认为你这样做的原因是为了避免这些类之间的循环依赖。您有两种选择:
答案 1 :(得分:1)
只需将#import“appdelegate.h”添加到SecondViewController.m的顶部你不需要将它添加到头文件的顶部,因为这样做会导致所有使用SecondViewController的类也导入appdelegate.h但是通过在m文件中执行此操作,它仅导入与SecondViewController.m
相关的方法