1

の出力を[Sectioninfo Objects]配列に格納しようとしています

NSArray *currentCategory = [sectionInfo objects];

NSLOGで取得するOutPutは次のとおりですが:

"<Catalogue: 0x6da1d20> (
    entity: Catalogue;
    id: 0x6da1090 <x-coredata://894839B1-B485-4D64-8D46-99E388F00225/Catalogue/p3> ;
    data: {\n    comments = nil;\n
                 email = nil;\n
                 name = Shorts;\n
                 phone = 0;\n
                 picture = <ffd8ffe0 00104a46 49460001 01000001 00010000 ffe10058 45786966 00004d4d 002a0000 00080002 01120003 00000001 0001>;\n
                 price = 77;\n
                 shop = Shop;\n
                 website = nil;\n})"

データ部分だけに興味があります

データ部分のみを抽出するにはどうすればよいですか?&それから私はそれをNSArrayに追加することができます

ご協力いただきありがとうございます

4

1 に答える 1

0

NSFetchedResultsController質問にはcore-dataのタグが付いているので、経由から取得したセクション情報について話していると思います

id <NSFetchedResultsSectionInfo> sectionInfo = [[fetchedResultsController sections] objectAtIndex:section];

その場合、セクション情報プロトコルはobjects、そのセクション内のオブジェクトの配列を返すことを指定します。このオブジェクトの配列は、フェッチの実行から返されるオブジェクトの配列と同じように、実際のオブジェクトを保持します。

したがって、他のオブジェクトと同じようにアクセスできます。うまくいけば、サブクラスがあるので、適切なプロパティを介してオブジェクトにアクセスできます。

それ以外の場合は、KVCメソッドを使用できます。ログ出力から、dataオブジェクト(おそらく文字列)のプロパティであると思います。

NSArray *sectionObjects = [sectionInfo objects];
NSMutableArray *dataArray = [NSMutableArray arrayWithCapacity:sectionObjects.count];
for (NSManagedObject *object in sectionObjects) {
    NSString *data = [object valueForKey:@"data"];
    [dataArray addObject:data];
}

または、次のように簡潔に行うこともできます。

NSArray *dataArray = [[sectionInfo objects] valueForKey:@"data"];

これは、レシーバーの各オブジェクトにキーを適用した結果を含む配列を返します。

于 2012-09-07T13:09:12.950 に答える