0

我有一个非常奇怪的问题。

我创建对象 DimensionItem :

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

@class Dimension;

@interface DimensionItem : NSManagedObject

@property (nonatomic, retain) NSNumber * dimItemID;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) Dimension *dimension;

@end

在某些类中,我可以正常访问它的属性,但是在某些对象中,当我创建

DimensionItem * item = ...
item.name ---->  Property 'name' not found on object  of type 'DimensionItem'

我无法访问它,甚至自动更正已关闭。

我在对象中包含标题:

#import "DimensionItem.h"

编辑 :

有初始化代码请求:

DimensionItem * item = [cubeItem getDimensionItemWhitDimensionID:self.dimensionID andDimensionItemID:[obj1 dimensionItemIndex]];

cubeitem 是另一个 NSManagedObject 创建的,其核心数据与 Dimension 具有一对多关系,与 DimensionItem 具有一对多关系。

函数计算集合中的位置并返回 DimensionItem。

正如我所说,在某些对象中,这个相同的功能可以使用

item.name

但其他人没有

4

1 回答 1

1

你不能访问这样的属性NSManagedObject,它不像一个普通的对象。这是因为对这些属性的访问应该由 CoreData 管理,而不是由您管理。

你需要使用:

//Set
[item setValue:@"myName" forKey:@"name"];

//Get
[item valueForKey:@"name"]
于 2013-10-30T08:19:58.550 回答