NSIndexSet -lastIndex が NSNotFound を返さない

NSArrayController から選択しているインデックスの集合 (インデックスセットオブジェクト) を selectedIndexes で取り出した。 最後に選択されているオブジェクトのインデックスを取り出したかったので、 lastIndex を使った。 通常の場合はこれでうまくいった。

でも何も選択されていない場合、 ちゃんと動かない。

何も選択されていない場合、 空のインデックスセットが返って来て、 空のインデックスセットに lastIndex を送ると NSNotFound が返ってくるはずだった。 しかしデバッガで見てみると違う値が返ってくる。

NSNotFound のドキュメントを見てみると (NSUInteger)0x7fffffff となっている。 が、 なぜか 0xffffffff になっている。

そして lastIndex の戻り値は (NSUInteger)0x7fffffffffffffff である。

どういうことなんだ一体?

まあ、 仕方がないのでインデックスセットの count をとって選択されていないかどうか確認するようにしたけど。