2

私のbookObjects配列のすべての本で反復する以下のコードがあります。私の問題は、addObjectがself.booksの最後に追加するのではなく、ランダムなインデックスにaBookオブジェクトを挿入/追加することです。

bookObjects内の本の順序に従うだけで、特定の順序や並べ替えは必要ありません。

本はNSMutableArrayです

NSArray *bookObjects = [element childrenNamed:@"books"];

int i = 0;
for(SMXMLElement *child in bookObjects)
{
    NSString *isbn = [child valueWithPath:@"isbn"]; 
    NVBook *aBook = [self getBookByISBN:isbn];
    if(nil == aBook)
    {
        aBook = [NVBook insertBookInContext:[self managedObjectContext]];
        aBook.isbn = isbn;

        [self.books addObject:aBook];
    }

    aBook.indexInList = i++;
    [aBook updateContentWithElement:child];
}

追加コード

+ (NVBook *)insertBookInContext:(NSManagedObjectContext*)context
{
    return [NSEntityDescription insertNewObjectForEntityForName:@"Book" inManagedObjectContext:context];
}


- (NVBook *)getBookByISBN:(NSString *)aISBN
{
    NVBook *aBook = nil;

    for(NVBook *book in self.books)
    {
        if([book.isbn isEqual:aISBN])
        {
            aBook = book;
            break;
        }
    }

    return aBook;
}
4

0 に答える 0