属性不能在前向类对象中find
我正在修改本教程到我的应用程序,我已经把它归结为最后一个错误,这阻止了我的轨道。 该程序无法find另一个文件中的属性,但该属性是明确定义的。 这是有问题的代码:
实际的错误行:
for (DTContact *dtc in _dtContact.contact) {
文件的.h和有问题的项目:
#import <UIKit/UIKit.h> @class XMLTestViewController; @class DTCXMLResponse; @interface XMLTestController : UIViewController{ UIWindow *window; XMLTestViewController *viewController; DTCXMLResponse *_dtContact; } @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) IBOutlet XMLTestViewController *viewController; @property (nonatomic, retain) DTCXMLResponse *dtContact; @property (nonatomic, retain) IBOutlet UIButton *mybutton; -(IBAction)buttonClicked; @end
它与_dtContact.contact有问题。 它无法在文件DTCXMLResponse中find联系人。 这里是.h文件和.m的部分:
。H
#import <Foundation/Foundation.h> @interface DTContactXMLResponse : NSObject { NSMutableArray *_contact; } @property (nonatomic, retain) NSMutableArray *contact; @end
.M
#import "DTCXMLResponse.h" @implementation DTContactXMLResponse @synthesize contact = _contact; - (id)init { if ((self = [super init])) { self.contact = [[NSMutableArray alloc] init]; } return self; } @end
所以那个。 正如你所看到的,我在DTCXMLResponse.h中有'联系'属性,并且在.m中链接。
这个错误通常指出Xcode不能识别你的符号。 我可以认为这是DTContact。
尝试插入到你的.h文件中:
#import DTContact.h
它与你的情况没有关系,但我得到了同样的错误。 我GOOGLE了一个解决scheme,但问题是在我的代码。 我正在使用不同的类对象,因为我是在我的项目中粘贴类似的代码片段。 所以这里是我有同样的错误的问题:
对于我的classA,我有一些代码片段:
ManagedObjectOfClassA * managedObjectOfClassA = [NSEntityDescription insertNewObjectForEntityForName:@"ManagedObjectOfClassA" inManagedObjectContext:managedObjectContext]; managedObjectOfClassA.somePropertyA = sameValue; //somePropertyA is an attribute of ManagedObjectOfClassA
类B的类似代码:
ManagedObjectOfClassA *managedObjectOfClassB = [NSEntityDescription insertNewObjectForEntityForName:@"ManagedObjectOfClassB" inManagedObjectContext:managedObjectContext]; managedObjectOfClassB.somePropertyB = someValue;////somePropertyB is an attribute of ManagedObjectOfClassB
如果仔细观察,错误的是将正确的实体分配给B类中的相应对象。
所以问题是在类B的代码。正确的代码将是:
ManagedObjectOf ClassB * managedObjectOfClassB = [NSEntityDescription insertNewObjectForEntityForName:@“ManagedObjectOf ClassB ”inManagedObjectContext:managedObjectContext];
managedObjectOf ClassB 。 somePropertyB .someValue;
我希望能帮助别人。