[ios] 정방향 클래스 개체에서 속성을 찾을 수 없습니다.

나는 적응하고있어 이 튜토리얼을 내 애플 리케이션에, 나는 내 트랙에서 저를 중지하고 마지막 오류로 내려 삶은있어. 프로그램이 다른 파일에서 속성을 찾을 수 없지만 해당 속성이 명확하게 정의되어 있습니다. 문제의 코드는 다음과 같습니다.

실제 오류 라인 :

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

.미디엄

#import "DTCXMLResponse.h"

@implementation DTContactXMLResponse
@synthesize contact = _contact;

- (id)init {

    if ((self = [super init])) {
        self.contact = [[NSMutableArray alloc] init];
    }
    return self;

}

@end

그래서 거기에 있습니다. 보시다시피, DTCXMLResponse.h에 ‘contact’가 등록되어 있고 .m.



답변

이 오류는 일반적으로 Xcode가 기호를 인식 할 수 없음을 나타냅니다. 이것이 DTContact라고 가정 할 수 있습니다.

.h 파일에 다음을 삽입하십시오.

#import DTContact.h


답변

귀하의 경우와 관련이 없지만 동일한 오류가 발생했습니다. 해결책을 찾았지만 문제는 내 코드에 있습니다. 내 프로젝트에 유사한 코드 조각을 복사하여 붙여 넣을 때 다른 클래스 개체를 사용했습니다. 그래서 여기에 같은 오류에 대한 문제가 있습니다.

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

누군가에게 도움이되기를 바랍니다.


답변