ページ 11

objective-c 別クラスのメソッドをコールする方法

Posted: 2012年2月07日(火) 00:36
by べっきー
objective-c初心者です。

AppDelegateプロトコルのメソッドから、MainViewControllerプロトコルの
メソッドAをコールにするにはどうのようにコーディングすればいいでしょうか?

ググって調べて以下のコーディングを行ったのですが、Aのメソッドのコールすらされませんでした。

よきアドバイスお願いいたします・・・。

AppDelegate.h
@class MainViewController;
@interface AppDelegate : NSObject <UIApplicationDelegate>
{
:
MainViewController *mainViewController;
}

AppDelegate.c
[mainViewController A];

MainViewController.c
- (void) A{
:
}

Re: objective-c 別クラスのメソッドをコールする方法

Posted: 2012年2月07日(火) 00:45
by h2so5
不完全なコードではなく、ちゃんとした全体のコードを載せてください。
特に、[mainViewController A]; がどこに書かれているのか不明です。

Re: objective-c 別クラスのメソッドをコールする方法

Posted: 2012年2月07日(火) 01:08
by べっきー
巨大なソースで全部のせきれないのですが要点を抜粋してソース記載しなおしました。
よろしくお願いいたします。

★AppDelegate.h
@class MainViewController;
@interface AppDelegate : NSObject <UIApplicationDelegate>
{
:
MainViewController *mainViewController;
}
@property (nonatomic, retain) MainViewController *mainViewController;

★AppDelegate.c
@implementation AppDelegate
@synthesize mainViewController;

//非同期通信データ受信
- (void)statusesReceived:(NSArray *)statuses forRequest:(NSString *)connectionIdentifier{
:
:
[mainViewController A];
}
@end

★MainViewController.c
@implementation MainViewController
:
- (void) A{
:
}

@end

Re: objective-c 別クラスのメソッドをコールする方法

Posted: 2012年2月07日(火) 08:40
by べっきー
余分な宣言を削除し、やっと以下でメソッドAを呼ぶ事ができたのですが、メソッドAで実施しているテーブル更新が
うまく動作しません。たびたびの質問で申し訳ないのですが何が悪いのでしょうか?

★AppDelegate.c
@implementation AppDelegate

//非同期通信データ受信
- (void)statusesReceived:(NSArray *)statuses forRequest:(NSString *)connectionIdentifier{
:
:
id test = [[MainViewController alloc] init];
[test A];★Aメソッドを呼んでいる

}
@end

★MainViewController.c
@implementation MainViewController
:
- (void) A{

[TableView reloadData];★呼ばれているがテーブルが更新されていない

}

@end