Rob*_*Rob 31 iphone objective-c ios4 ios
我一直在处理一个应用程序,它一直工作正常,直到Xcode下载库或其他东西,然后它开始出现问题.我只是想创建getter/setter方法来从我的APPDelegate中获取几个数组.就像我说它工作正常然后随机出现这个错误现在将不再构建:
property with 'retain(or strong)' attribute must be of object type
Run Code Online (Sandbox Code Playgroud)
这是代码的其余部分:
#import <Foundation/Foundation.h>
#import "Project.h"
#import "TeamMember.h"
@interface Task : NSObject{
NSDate *endDate;
NSDate *startDate;
NSMutableString* notes;
NSMutableString* taskName;
//The error appears first right here over teamMember
TeamMember *teamMember;
Project *project;
}
//The error appears over both of the following lines as well...
@property (nonatomic, retain)TeamMember *teamMember;
@property (nonatomic, retain) Project * project;
@property (nonatomic, retain) NSMutableString *notes;
@property (nonatomic, retain) NSMutableString *taskName;
@property (nonatomic, retain) NSDate *startDate;
@property (nonatomic, retain) NSDate *endDate;
@end
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?这让我难过......
这是Project.h:
#import <Foundation/Foundation.h>
#import "Task.h"
@interface Project : NSObject{
NSDate *dueDate;
NSDate *startDate;
NSArray *tasksInProject;
NSMutableString* notes;
NSMutableString* description;
NSMutableString* projectName;
}
@property (nonatomic, retain) NSDate *startDate;
@property (nonatomic, retain) NSDate *dueDate;
@property (nonatomic, retain) NSArray *tasksInProject;
@property (nonatomic, retain) NSMutableString *description;
@property (nonatomic, retain) NSMutableString *projectName;
@end
Run Code Online (Sandbox Code Playgroud)
这是TeamMember.h
#import <Foundation/Foundation.h>
#import "Task.h"
#import "Project.h"
@interface TeamMember : NSObject{
NSMutableArray *projects;
NSMutableString *name;
NSMutableString *title;
NSMutableString *email;
NSMutableString *phone;
NSMutableString *notes;
}
//@property(nonatomic, retain) NSArray *projects;
@property (nonatomic, retain) NSMutableString *name;
@property (nonatomic, retain) NSMutableString *title;
@property (nonatomic, retain) NSMutableString *email;
@property (nonatomic, retain) NSMutableString *phone;
@property (nonatomic, retain) NSMutableString *notes;
@end
Run Code Online (Sandbox Code Playgroud)
Lin*_*ang 57
看起来它是由递归包含头文件引起的.
尝试将@class Project和@class TeamMember添加到Task.h中,就像这样
#import <Foundation/Foundation.h>
#import "Project.h"
#import "TeamMember.h"
@class TeamMember;
@class Project;
@interface Task : NSObject{
NSDate *endDate;
NSDate *startDate;
...
}
@end
Run Code Online (Sandbox Code Playgroud)
Raj*_*071 37
您试图保留不是NSObject子类的内容.通常,当有人试图保留float或int时会发生这种情况.
NSInteger是标量而不是对象.所以你不应该保留它,它应该被分配.更改您的属性将清除警告消息.您不需要执行添加的NSNumber内容.
@property (nonatomic, assign) NSInteger integValue;
Run Code Online (Sandbox Code Playgroud)
错误是您试图保留不是NSObject
子类的内容.通常,当有人试图这发生retain
一个float
或int
.
你已经展示了.h Project
但不是TeamMember
.检查后者,如果你没有看到它,那么更新你的代码片段.