特にXcode 4.2からのユーザーはARC (automatic reference counting)を有効にしている人もたくさんいると思います。

一方で、performSelectorInBackground:withObjectメソッドを利用する場合はオートリリースプールを用意する必要があります。
ARCを利用していない場合、@selectorに指定するメソッドは以下のように作成します。

- (void)doInBackground {
NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];

// バックグラウンドで実行するコード

[pool drain];
}

オンラインで見られるドキュメントは上のような(ARCを使っていない場合の)記述であることが多いのですが、ARCを有効にした状態だと以下のようなエラーが発生します。

Semantic Issue: 'NSAutoreleasePool' is unavailable: not available in automatic reference counting mode

そこでNSAutoreleasePoolに関連した部分を削除すると一見うまく動くのですが、メモリが不足した場合でもそれを開放できずにメモリリークが発生し、例えば以下のような警告が出ます。

__NSAutoreleaseNoPool(): Object 0x****** of class NSCFString autoreleased with no pool in place - just leaking

ARCが有効な状態でオートリリースプールを利用する場合は、main関数がそうしているように、@autoreleasepool{}を利用します。つまり、

- (void)doInBackground {
@autoreleasepool {
// バックグラウンドで実行するコード
}
}

このように記述すればエラーや警告なく、performSelectorInBackground:withObjectメソッドが使えるようになります。