-4

私はMac開発の初心者です。Objective c のフレームワークのコードをアップグレードします。このようにコードを変更します。

    NSEnumerator *e = (NSEnumerator *)[oOutlineView selectedRowIndexes];
    NSNumber *cur;

    while ((cur = [e nextObject]))
    {
      CKDirectoryNode *node = [oOutlineView itemAtRow:[cur intValue]];
      [selection addObject:node];
      fullPath = [node path];
    }

[oOutlineView selectedRowIndexes] は NSIndexSet オブジェクトを提供します。ターゲットがフレームワークであるため、このコードを実行できません。これでいいですか?私を助けてください。

4

4 に答える 4

2

いいえ、これは機能しません。NSIndexSet は列挙子ではないため、列挙子として使用することはできません。列挙するには、enumerateIndexesUsingBlock: メソッドを使用するか、firstIndex と indexGreaterThanIndex: を使用します。

しかし、コードを実行できない場合は、はるかに大きな問題があります。最初にすべきことは、それを実行する方法を見つけることです。単体テスト ターゲットを作成し、コードを実行して正しい結果が生成されるかどうかを確認するテストを追加する必要があります。それができない場合は、少なくともフレームワークを使用する通常のアプリ ターゲットを作成する必要があります。

于 2013-06-06T09:25:57.193 に答える
0

いいえ、そうではありません:NSIndexSetは のサブクラスではありませんNSEnumerator。インデックス セット内のインデックスを列挙する場合は、この Apple ドキュメント ページと、そのすぐ下の「インデックス セットとブロック」セクションを参照してください。

于 2013-06-06T09:25:44.663 に答える