我有一个名为MAAssignment
的自定义NSObject。它基本上是一种数据类型,具有多个@properties
和一个自定义init
方法:
@property (nonatomic, strong) NSDate *date;
@property (nonatomic, strong) NSString *assignmentName;
@property (nonatomic, strong) NSNumber *totalPoints;
@property (nonatomic, strong) NSNumber *recievedPoints;
@property (nonatomic, strong) NSNumber *classAverage;
@property (nonatomic, strong) NSNumber *extraCredit;
@property (nonatomic, strong) NSNumber *notGraded;
- (id)initWithDate:(NSString *)date assignmentName:(NSString *)assignmentName totalPoints:(NSNumber *)totalPoints recievedPoints:(NSNumber *)recievedPoints classAverage:(NSString *)classAverage extraCredit:(NSNumber *)extraCredit notGraded:(NSNumber *)notGraded;
我在viewController
中创建了一个实例,希望用一些数据填充新创建的项目......但是我无法弄清楚如何访问对象的变量。我去了MAAssignment *assignment = [[MAAssignment alloc] init];
,然后我尝试了[assignment setDate]
或assignment.date = ddate
,但似乎都没有。
我误解了对象的访问器是如何工作的吗?
答案 0 :(得分:3)
您应该将这些变量放在h中。文件 MAAsignment
答案 1 :(得分:0)
我不能很好地理解你的问题(你在哪里声明这段代码?你的MAAsiignment初始化示例的完整代码是什么?),但无论如何我都会尝试回答。 / p>
您确定@property
声明是在.h
中的@interface和.m
内的不是吗?
@interface
内的.m
是私有类扩展,允许您声明私有属性。要使它们在外面可用,您需要将它们放在标题(.h
)中。
请发布更多代码,让我们提供更详尽的答案。
答案 2 :(得分:0)
您描述的是数据容器对象。它应该按照描述的方式工作:
MAAssignment *anAssignment = [[MAAssignment alloc] init];
anAssignment.date = [NSDate date];
anAssignment.totalPoints = @(10);
NSLog(@"anAssignment.date = %@", anAssignment.date);
NSLog(@"anAssignment.totalPoints = %@", anAssignment.totalPoints);
应该完美地运作。你有任何警告吗?