ARC移行ツールは、移行の前で始まるにこのコードを受け入れることを拒否している:「セレクタの既知のインスタンスメソッドがありません」performSelector:withObject:afterDelay: '"ARCに移行する際の解決方法?
[self.delegate performSelector:@selector(overlayDismissed:) withObject:self afterDelay:0];
デリゲートは、プロトコルでこのメソッドを実装することを余儀なくされ、それが正常に動作する必要があります:
@protocol OverlayDelegate <NSObject>
- (void)overlayDismissed:(Overlay*)overlay;
@end
@interface Overlay : UIImageView {
id<OverlayDelegate> delegate;
}
@property (nonatomic, assign) id<OverlayDelegate> delegate;
ARCの何が問題なのですか?なぜセレクタのインスタンスメソッドが知られていないのですか?performSelector:withObject:afterDelay: '?
これは、私たちが代理人をIDとして宣言した日がなくなったということです。単に代わりにNSObjectに依存していますか? (とにかく意味をなされる私のために) – openfrog
ARCはメモリ管理目的でこれらのことを強制します。あなたの代理人がNSObject型であることを知っていれば、それだけを述べて、この問題は解消されます。 – dtuckernet
それでも 'id'を使い、' NSObject'のメソッドを使わないでください。とにかく 'NSObject'のメソッドを使っているのはなぜですか?ここには要件がありますか? – mattjgalloway