1

わかりました、これは本当に私を悩ませています、そして私は解決策が単純であると確信しています...私はViewControllerの.h /で適切に宣言して合成した別のクラス(SeverConnect.m)からViewControllerのプロパティ変数を設定できません。 mファイル:

ServerConnect.h:

#import <Foundation/Foundation.h>
#import "ViewController.h"
#import "Contact.h"

@class ViewController;

@interface ServerConnect : NSObject
{
Contact *newContact;
NSString *codeRawContent;
NSMutableArray *contactListCopy;
...  //Other variables declared here, but not shown in order to save space

ServerConnect.mの内部:

- (void)parserDidEndDocument:(NSXMLParser *)parser
{
NSLog(@"parserDidFinish");

newContact = [[Contact alloc] initWithCodeInfo:(NSString *)codeInfo
                                       contactName:(NSString *)completeName 
                                      contactImage:(UIImage *)profileImage
                                    contactWebSite:(NSString *)codeRawContent];
[contactListCopy insertObject:newContact atIndex:0];
[ViewController setContactList:contactListCopy];  //Automatic Reference Counting Error Occurs Here: "No known class method for selector 'setContactList:'"
}

上で述べたように、ViewControllerの.h / .mファイルでプロパティ変数「contactList」を宣言して合成しました(エラーなし)。

@property (nonatomic, retain) NSMutableArray *contactList;  //In ViewController's .h file
@synthesize contactList;  //In ViewController's .m file

誰かが私が間違っていることを教えてもらえますか?あなたが提供できるどんな助けにも前もって感謝します!

4

2 に答える 2

1

クラスのインスタンスプロパティにアクセスしようとしています。

[ViewController setContactList:contactListCopy];

最初にViewControllerクラスのインスタンスを作成してから、そのプロパティを設定する必要があります。このようなもの:

ViewController *viewController = [[ViewController alloc] init];
[viewController setContactList:contactListCopy];
于 2012-12-27T22:41:58.207 に答える
0

このコード行では:

[ViewController setContactList:contactListCopy];

タイプの変数を使用する必要がありますViewController。使用方法は、プロパティではなくクラスメソッドである必要があります。次のように記述します。

ViewController *viewController = [[ViewController alloc] init];

[viewController setContactList:contactListCopy];

于 2012-12-27T22:41:45.320 に答える