OStack程序员社区-中国程序员成长平台

标题: ios - 无法解析协议(protocol)中的类型 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 04:01
标题: ios - 无法解析协议(protocol)中的类型

#import "MPOContactAuthorizationManager.h"

@protocol MPOContactAuthorizationManagerDelegate <NSObject>

- (void)authorizationMangerMPOContactAuthorizationManager *)manager
      didUpdateContactStateContactsState)contactState;

@end

MPOContactAuthorizationManagerContactState 不解析为类型,即使它们在 MPOContactAuthorizationManager 中声明:

#import "MPOContactAuthorizationManagerDelegate.h"

typedef enum _contactsState {
    kContactsStateUnknown,
    kContactsStateAllowed,
    kContactsStateDisallowed
} ContactsState;

@interface MPOContactAuthorizationManager : NSObject <UIAlertViewDelegate> {
    ContactsState _contactsAuthorizationState;;
}

@property (strong, nonatomic) NSObject<MPOContactAuthorizationManagerDelegate> *delegate;
@property (nonatomic) ContactsState contactsAuthorizationState;

关于为什么这些没有解决的任何想法?两者都收到错误“预期类型”

谢谢 迈克



Best Answer-推荐答案


你有一个循环依赖。通过删除 #import 行并添加以下内容来更新 MPOContactAuthorizationManagerDelegate.h header :

@class MPOContactAuthorizationManager;

就在 @protocol 行之前。

只需将两者放在一个 .h 文件中(您仍然需要 MPOContactAuthorizationManager 的前向声明):

typedef enum _contactsState {
    kContactsStateUnknown,
    kContactsStateAllowed,
    kContactsStateDisallowed
} ContactsState;

@class MPOContactAuthorizationManager;

@protocol MPOContactAuthorizationManagerDelegate <NSObject>

- (void)authorizationMangerMPOContactAuthorizationManager *)manager
      didUpdateContactStateContactsState)contactState;

@end

@interface MPOContactAuthorizationManager : NSObject <UIAlertViewDelegate> {
    ContactsState _contactsAuthorizationState;;
}

@property (strong, nonatomic) NSObject<MPOContactAuthorizationManagerDelegate> *delegate;
@property (nonatomic) ContactsState contactsAuthorizationState;

关于ios - 无法解析协议(protocol)中的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18603379/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4