Подтвердить что ты не робот

Свойство не может быть найдено в объекте прямого класса

Я приспосабливаю этот учебник к моему приложению, и у меня есть своя последняя ошибка, которая останавливает меня мои треки. Программа не может найти свойство в другом файле, но это свойство четко определено. Вот код, о котором идет речь:

Фактическая строка ошибки:

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.

4b9b3361

Ответ 1

Эта ошибка обычно указывает, что Xcode не может распознать ваш символ. Я могу предположить, что это DTContact.

Попробуйте вставить это в свой .h файл:

#import DTContact.h

Ответ 2

Это не относится к делу ур, но я получал ту же ошибку. Я googled для решения, но проблема была в моем коде. Я использовал другой объект класса, так как копировал в моем проекте аналогичный фрагмент кода. Итак, вот проблема, которая была у меня для той же ошибки:

Для моего класса A у меня был фрагмент кода, например:

    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;.

Я надеюсь, что это поможет кому-то.