2011-12-20 7 views
1

RKObjectManagerのデリゲートをnilに設定したいと思います。しかし、私は代理人の財産を見つけることができません。RKObjectManagerのデリゲートをnilに設定するにはどうすればよいですか?

私の要求は次のとおりです。

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"getData" 
    objectMapping:[[RKObjectManager sharedManager].mappingProvider 
         objectMappingForKeyPath:@"clips"] delegate:self]; 

UPDATE:私のアプリでクラッシュがあります。私は "クリップ"に行き、viewDidLoadでloadObjectsAtResourcePathを送ります。私がこの画面をすばやく離れると[RKResponse connection:didReceiveData:]にクラッシュします。

+0

RKObjectManagerにはデリゲートがありません。デリゲートはRKObjectLoaderに渡され、さらにRKRequestに渡されます。リクエストが完了する前にデリゲートを 'nil'に設定しますか?あなたが達成したいことについてもっと多くの情報を提供してください。もっと良い方法があるかもしれません。 – mja

+0

はい、要求が完了する前にデリゲートを 'nil'に設定します。 – Voloda2

+0

私はそれも可能だとは思わない。あなたはおそらく何を達成しようとしているのか説明できますか?どういうわけかリクエストをキャンセルしますか? – mja

答えて

7

クラッシュは、「デリゲート」オブジェクトがdeallocされていることが原因です。あなたの問題には簡単な解決策があります。例えば保留中のリクエストをすべてキャンセルするだけです。あなたのviewDidUnload(またはdealloc、あなたの実装に依存します)メソッドで。

- (void)viewDidUnload 
{ 
    ... 
    [[[[RKObjectManager sharedManager] client] requestQueue] cancelRequestsWithDelegate:self]; 
    ... 
} 
関連する問題