programing

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

bestprogram 2023. 10. 19. 22:40

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

이 자습서를 제 앱에 적용하고 있는데 마지막 오류로 압축되어 제 궤도에 진입할 수 없게 되었습니다.프로그램이 다른 파일에서 속성을 찾을 수 없지만 해당 속성은 명확하게 정의되어 있습니다.문제가 된 코드는 다음과 같습니다.

실제 오차선:

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에 문제가 있습니다.DTCXML 응답 파일에서 연락처를 찾을 수 없습니다.다음은 .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

그래서.보시다시피 저는 DTCXML Response.h에 'contact' 속성이 있고 .m에 링크되어 있습니다.

이 오류는 일반적으로 Xcode가 사용자 기호를 인식할 수 없음을 나타냅니다.이는 DTC 접촉으로 추정할 수 있습니다.

.h 파일에 이 내용을 삽입해 보십시오.

#import DTContact.h

저희 건과는 관련이 없지만 같은 오류가 발생했습니다.구글에서 해결책을 찾아봤지만 문제가 코드에 있었습니다.프로젝트에서 유사한 코드 조각을 복사하여 붙여넣을 때 다른 클래스 개체를 사용하고 있었습니다.같은 오류에 대한 문제는 다음과 같습니다.

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급 코드에 있습니다.그리고 정확한 코드는 다음과 같습니다.

ManagedObjectOfClassB *managedObjectOfClassB = [NSEntityDescription insertNewObjectForEntityForName:@ManagedObjectContext: ManagedObjectContext]의 "ManagedObjectOfClassB";

managedObjectOfClassB.어떤 속성 B.일부 값;

누군가에게 도움이 되었으면 좋겠습니다.

언급URL : https://stackoverflow.com/questions/8577457/property-cannot-be-found-in-forward-class-object