ios - Xcode 不再识别对象

标签 ios xcode nsobject

我有一个名为 friend 的对象(我知道,第一个字母应该大写)。我在许多其他类和 View Controller 中使用此类。

突然之间,在不更改任何代码的情况下,我拥有的每个自定义对象都停止相互识别。我总是收到错误未知类型名称“ friend ”。

我已经尝试清除项目并重新启动 mac。 WTF 这个 Xcode 有问题吗?突然之间,我的整个项目都停止工作了。

这是我的类 currentUser.h

#import <Foundation/Foundation.h>
#import "friend.h"

@interface currentUser : NSObject<NSCoding>
{
    BOOL fromfacebook;
    @private
    NSMutableArray *upLoadStack;

}

@property (nonatomic,strong)NSString *token;
@property (nonatomic,strong)NSString *email;
@property (nonatomic,strong)NSString *name;
@property (nonatomic,strong)UIImage *userImg;
@property (nonatomic,strong)NSString *username;
@property (nonatomic,strong)NSString *facebookID;
@property (nonatomic,strong)NSString *userPSW;
@property (nonatomic,strong)NSString *userID;
@property (nonatomic,strong)NSMutableArray *friendsList;
@property (nonatomic,strong)NSMutableArray *groups;
@property (nonatomic,strong)NSData *audioMessage;
@property (nonatomic,strong)NSMutableArray *mimosToDownload;
@property (nonatomic,strong)NSMutableArray *mimosDownloaded;
@property (nonatomic,strong)friend *friendToSend; //Here is where a I get the error of unknown type name


@end

这是 friend .h

#import <Foundation/Foundation.h>
#import "currentUser.h"
#import "Imager.h"

@interface friend : NSObject<NSCoding>

@property (nonatomic,strong)NSString *username;
@property (nonatomic,strong)NSString *userID;
@property (nonatomic,strong)UIImage *userImg;
@property(nonatomic,strong)NSMutableData *buffer;

@property(nonatomic)BOOL flagDownloaded;
-(UIImage*)downloadImageBlocked;
-(id)init;
-(UIImage*)getFriendImg;
-(UIImage*)userImg;
-(NSString*)getUserID;
-(NSString*)getUserName;
- (void)encodeWithCoder:(NSCoder *)encoder;
-(bool)isNil;

@end

最佳答案

首先修复你知道是错误的东西......

改变

@interface currentUser : NSObject<NSCoding>
{
    BOOL fromfacebook;
    @private
    NSMutableArray *upLoadStack;

}

@interface User : NSObject<NSCoding>
{
    BOOL fromfacebook;
    @private
    NSMutableArray *upLoadStack;

}

您不需要知道用户是否是当前用户就可以拥有用户的属性,将它们视为实际表示对象。

改变:

@interface friend : NSObject<NSCoding>

@interface Friend : NSObject<NSCoding>

你知道这是错误的,现在就修复它,然后再修复 1000 个地方而不是 100 个地方。

约定在 Objective-C 中非常重要。

如果不需要的话,也不要将所有内容都导入到标题中......

@class Friend; //forward class declaration

@interface currentUser : NSObject<NSCoding>
...
@property (nonatomic,strong)Friend *friendToSend; //Here is where a I get the error of unknown type name

至于你在 currentUser 中的 ivar,你不需要界面中的那些(它们可以放在 @implimentation 行之后的一个 block 中),除非你需要它们来实现向后兼容性......

关于ios - Xcode 不再识别对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28411724/

相关文章:

ios - Swift 2.0/iOS 9 兼容性

ios - PackageApplication 今天停止使用 OS X 10.10 (Yosemite)

ios - xcode 崩溃并显示 "Thread 1: signal SIGABRT"并且连接未链接

objective-c - 与存储在 NSMutableArray 中的 UIView 进行交互

ios - Swift 4 backgroundColor 错误?

ios - QMessagebox是否有用于IOS开发的替代解决方案(仅QWidget应用程序)?

ios - UIBezierPath 不起作用

SwiftUI 选择器项目 .foregroundColor() 不起作用

iphone - 如何将 NSRange 存储在 NSMutableArray 或其他容器中?

swift - 关于 NSObject 用法的歧义?