2013-10-30 117 views
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 

在某些课程,我可以normaly访问它的属性OUF,但是当我创建

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创建具有一个到该核心数据与维度之间的关系与DimensionItem具有一对多的关系。

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

正如我所说的,在某些对象这个功能相同的工作

item.name 

,但别人不

+0

让我看看你的代码为“项”初始化 – manujmv

回答

1

您无法访问NSManagedObject这样的性质,它不是一个普通的目的。这是因为对这些属性的访问应该由CoreData管理,而不是由您来管理。

您需要使用:

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

//Get 
[item valueForKey:@"name"] 
+0

但是,当核心数据填充对象我可以正常访问这些属性。我通常可以。这是第一次,有些对象(不是全部)不给我这些属性选项 –

+0

是的,但不是当你创建它作为一个简单的对象时 –

+0

DimensionItems * item = ...获取Core数据创建它的对象。当xCode如何创建一个简单的对象时知道Core数据何时在对象上创建?而且,相同的代码行DimensionItems * item = ...; item.name在一个对象中起作用,但不在另一个对象中。 –

相关问题