我有一个很奇怪的问题。让我先将代码发布给您

在我的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”

最佳答案

原因是,您已在SecondViewController中预先声明了TestAppDelegate,因此无法访问属性。而且我认为您这样做的原因是为了避免这些类之间的循环依赖。您有两种选择:

  • 在SecondViewController.m中导入TestAppDelegate.h。
  • 删除循环依赖项,并在SecondViewController.h中而不是@class TestAppDelegate导入TestAppDelegate;
  • 10-05 17:44