我正在调整This tutorial到我的应用程序,我已经把它归结为最后一个错误,这阻止了我的追踪。程序无法在另一个文件中找到属性,但该属性已明确定义。以下是有问题的代码:
实际错误行:
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中找到联系人。这是.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中链接。
答案 0 :(得分:166)
此错误通常指出Xcode无法识别您的符号。 我可以假设这是DTContact。
尝试将此插入.h文件中:
#import DTContact.h
答案 1 :(得分:0)
它与你的情况无关但我得到了同样的错误。我用谷歌搜索解决方案,但问题出在我的代码中。我正在使用不同的类对象,因为我在我的项目中复制了类似的代码片段。所以这就是我遇到同样错误的问题:
对于我的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;
我希望能帮助别人。