IOS未知的typename appdelegate

Bad*_*hah 2 objective-c ios

我收到的错误就像

:未知类型名称'AppDelegate'

:未知类型名称'AppDelegate'

:具有"弱"属性的属性必须是对象类型

错误图片

我已经提到了很多像这样的问题,但都给出了像添加的答案

@class Appdelegate;
Run Code Online (Sandbox Code Playgroud)

我尝试编辑此代码,但在此之后它给出了错误

:AppDelegate.m:23:18:'ddLogLevel'的重新定义

精制日志

因为此日志是在两个视图控制器中定义的.我也尝试从上面的视图控制器评论此日志的行,但它会给出错误

:/ChatViewController.m:440:13:使用未声明的标识符'ddLogLevel'

DDLOG错误

现在有什么解决方案?

编辑:我必须这样声明.因为我正在研究xmpp.所以我必须[[self appDelegate] connect]在另一个视图控制器中调用方法.

- (AppDelegate *)appDelegate
{
return (AppDelegate *)[[UIApplication sharedApplication] delegate];
}
Run Code Online (Sandbox Code Playgroud)

编辑

      //Appdelegate.h file //
    #import <UIKit/UIKit.h>
    #import <CoreData/CoreData.h>
    #import "ViewController.h"
  #import "MBProgressHUD.h"
  #import "FriendsViewController.h"
  #import <CoreData/CoreData.h>
 #import "XMPPFramework.h"
//@class FriendsViewController;
@class ViewController;
   @interface AppDelegate :  NSObject <UIApplicationDelegate, XMPPRosterDelegate>
 {
XMPPStream *xmppStream;
XMPPReconnect *xmppReconnect;
XMPPRoster *xmppRoster;
XMPPRosterCoreDataStorage *xmppRosterStorage;
XMPPvCardCoreDataStorage *xmppvCardStorage;
XMPPvCardTempModule *xmppvCardTempModule;
XMPPvCardAvatarModule *xmppvCardAvatarModule;
XMPPCapabilities *xmppCapabilities;
XMPPCapabilitiesCoreDataStorage *xmppCapabilitiesStorage;

NSString *password;

BOOL customCertEvaluation;

BOOL isXmppConnected;
BOOL isauthenticate;

UIWindow *window;
UINavigationController *navigationController;
//SettingsViewController *loginViewController;
UIBarButtonItem *loginButton;
ViewController *viewController;
FriendsViewController *FriendsViewController;
  }
 @property (strong, nonatomic) UIWindow *window;
 @property (nonatomic, strong, readonly) XMPPStream *xmppStream;
 @property (nonatomic, strong, readonly) XMPPReconnect *xmppReconnect;
 @property (nonatomic, strong, readonly) XMPPRoster *xmppRoster;
 @property (nonatomic, strong, readonly) XMPPRosterCoreDataStorage  *xmppRosterStorage;
 @property (nonatomic, strong, readonly) XMPPvCardTempModule *xmppvCardTempModule;
 @property (nonatomic, strong, readonly) XMPPvCardAvatarModule *xmppvCardAvatarModule;
 @property (nonatomic, strong, readonly) XMPPCapabilities *xmppCapabilities;
 @property (nonatomic, strong, readonly) XMPPCapabilitiesCoreDataStorage *xmppCapabilitiesStorage;

//@property (nonatomic, strong) IBOutlet UIWindow *window;
@property (nonatomic, strong) IBOutlet UINavigationController *navigationController;
//@property (nonatomic, strong) IBOutlet SettingsViewController *settingsViewController;
@property (nonatomic, strong) IBOutlet UIBarButtonItem *loginButton;
@property (nonatomic, strong) ViewController *viewController;
@property (nonatomic, strong) FriendsViewController *FriendsViewController;
  - (NSManagedObjectContext *)managedObjectContext_roster;
  - (NSManagedObjectContext *)managedObjectContext_capabilities;
  @property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
  @property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
  @property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
  - (BOOL)connect;
  - (BOOL) isXmppConnected;
  - (void)disconnect;
  -(BOOL) isauthenticate;

 @end
Run Code Online (Sandbox Code Playgroud)

Jak*_*ano 6

你有两个问题,我将分别解决它们:

未知的类型名称'AppDelegate'

这是因为循环依赖:ChathistryViewController.h导入AppDelegate.h,反之亦然.

您可以通过AppDelegate.h仅导入ChathistryViewController.m和包含@class AppDelegate.h文件中来解决此问题.

AppDelegate.m:23:18:'ddLogLevel'的重新定义

ddLogLevel*ViewController.h文件中定义时,它的定义将"复制"到您导入的所有文件中*ViewController.h.

您应该只导入CocoaLumberjack和定义文件,因为它们根本不需要.ddLogLevel.m.h