私の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;
}