私がブロックをサポートすることを期待するすべてのものの中で、不思議なことに NSUndoManager はサポートしていないようです。これには何らかの固有の理由があるのでしょうか、それとも Apple は単にこの API のビットを最新化することに取り組まなかったのでしょうか?
特に、NSObject でメソッドを定義したいと思います。
- (void)performBlock {
void (^block)(void) = (id)self;
block();
}
電話できるようにするには、
[[undoManager prepareWithInvocationTarget:^{
NSLog( @"hello world" );
}] performBlock];
私は何かを逃しましたか?これに問題はありますか?
(2009 年の Mike Ash の記事に触発され、ブロックでメソッドを定義しないことを推奨しています。私もそこにコメントを残しました。)