在前向类对象中找不到属性

时间:2011-12-20 15:07:06

标签: ios xml properties gdataxml

我正在调整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中链接。

2 个答案:

答案 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;

我希望能帮助别人。