1. ホーム
  2. ios

[解決済み] プロパティがフォワードクラスオブジェクトに見つからない

2023-07-13 22:41:50

質問

私は このチュートリアル を私のアプリに適用しているところですが、最後の 1 つのエラーまで煮詰めてしまい、それが私の足を止めています。プログラムは別のファイルにあるプロパティを見つけることができませんが、そのプロパティは明確に定義されています。以下は、問題のコードです。

実際のエラー行です。

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に'contact'のプロパティがあり、.mにリンクされています。

どのように解決するのですか?

このエラーは通常、Xcodeがあなたのシンボルを認識できないことを指摘しています。 これはDTContactであると推測できます。

これを.hファイルに挿入してみてください。

#import DTContact.h