2

プロジェクトにインポートした外部ファイルのメソッドの呼び出しに問題があります。プロジェクトは正常にコンパイルされますが、メソッドは何らかの理由で呼び出されません。また、コンソールにエラーメッセージ/出力はありません。

誰か助けてもらえますか?これが完全な問題です:

(1)このチュートリアルの作成者が作成したFlickr API(4ファイル)をダウンロードし、Xcodeファイルマネージャーにドラッグアンドドロップして、4つのファイルをコピーしてプロジェクトにリンクするように指定しました。

* Flickr.h
* Flickr.m
* FlickrPhoto.h
* FlickrPhoto.m

(2)メインビューコントローラで、最初に外部ファイルをインポートします

#import "Flickr.h"
#import "FlickrPhoto.h"

(3)次に、@ interfaceセクションで、オブジェクトを保持するプロパティを定義します。

@property (weak, nonatomic) Flickr *flickr;

(4)viewDidLoadで、オブジェクトの新しいインスタンスを割り当てます。

self.flickr = [[Flickr alloc] init];

(5)その後、後のメソッドで、APIのメソッドの1つを呼び出します。

[self.flickr searchFlickrForTerm:textField.text completionBlock:^(...) { ... }];

ただし、メソッドは呼び出されません。このメソッド呼び出しの直前にNSLog行を配置し、コンソールに出力します。また、メソッドの最初の行にNSLogを配置します。

- (void)searchFlickrForTerm:(...) term completionBlock: ...

そしてそれは何も印刷していません。

このメソッドが呼び出されないのはなぜですか???!!! これまでこの問題が発生したことはありません。その本当に迷惑です。

4

1 に答える 1

4

プロパティを弱いではなく強いに変更してみて、問題が解決するかどうかを確認してください。

@property (strong, nonatomic) Flickr *flickr;

それで問題が解決した場合、問題は、使用する前にプロパティの割り当てが解除されていたことです。「weak」プロパティにより、オブジェクトの割り当てが解除されるとポインタがnilに設定されるため、エラーは発生しません(Objective-Cはメッセージをnilに送信するときにエラーをスローしません)。

于 2012-11-19T23:45:08.700 に答える