-2

関数がここで呼び出していない理由を教えてください

クラス MasterViewController.h

@interface MasterViewController : UITableViewController 
- (void) populateTableView;

クラス ModelViewController.h

#import "MasterViewController.h"
@interface ModelViewController : UIViewController
@property (strong, nonatomic) MasterViewController *MasterViewController;

クラス ModelViewController.m

@synthesize MasterViewController;
[MasterViewController.self populateTableView]; // Function Calling
4

1 に答える 1

2
@property (strong, nonatomic) MasterViewController *MasterViewController;

MasterViewControllerここでは、クラス名と同じ名前のインスタンス変数 (プロパティ) を宣言しています。populateTableView実際、MasterViewController にメッセージを送信すると、コンパイルはそれをインスタンス メソッド( ) ではなくクラス メソッド( ) として扱いました。+ (void)populateTableView;- (void)populateTableView;

したがって、代わりにこの iVar を宣言したほうがよいでしょうmasterViewController(mは小文字です)。

@property (strong, nonatomic) MasterViewController *masterViewController;

次に、メソッドで割り当てて使用します。

...
[self.masterViewController populateTableView];
于 2012-11-01T07:50:29.107 に答える