0

アプリで設定したプロトコルとデリゲートに問題があります。クラスからビューコントローラにデータを返そうとしていますが、返そうとしても何も起こりません...プロトコルメソッドが入力されません。

これを参考にして何度か設定していて、どこでエラーが発生しているのかわからないので、コードを共有すれば、ここの誰かが私ができないことを見ることができるかもしれないと思いました。

これが私が書いたコードです。

SendingClass.h

@protocol SearchViewCachedData <NSObject>
- (void)sendMyArray:(NSArray *)array;
@end
//..
    __weak id <SearchViewCachedData> SearchViewDelegate;
//..
    @property (weak, nonatomic) id <SearchViewCachedData> SearchViewDelegate;
//..

SendingClass.m

@synthesize SearchViewDelegate;

//..

[[self SearchViewDelegate]sendMyArray:dictionaryArray];

SearchView.h

@interface SearchViewController : UITableViewController <SearchViewCachedData> {

SearchView.m

- (void)sendMyArray:(NSArray *)array
{
    //Break point in here.. but its never reached.
}

ここでボンカーを食い物にするので、どんな助けでも大いに感謝されます。

4

1 に答える 1

1

あなたの代理人が設定されていないような気がします

searchViewDelegateがインスタンス値に設定されていることを確認してください

if (self.searchViewDelegate != nil) {
    [self.searchViewDelegate sendArray:array];
}

また。プロパティの最初の大文字は小文字である必要があります。クラスは大文字で表示されるアイテムです。

修正

コード内の別の部分でnilに設定されているか、まったく設定されていない可能性があります。

デリゲートを合成する場所で、セッターを作成することもできます。

@synthesize searchViewDelegate = _searchViewDelegate;
- (void) setSearchViewDelegate:(id<SearchViewCachedData>) searchViewDelegate{
    if (searchViewDelegate != searchViewDelegate){ // Add breakpoint here to see when set is called.
        searchViewDelegate = searchViewDelegate;
    }
}
于 2012-10-03T02:47:26.147 に答える