2 つの ALAssets オブジェクトの比較に問題があります。selectedImages と mutableAssets の 2 つの NSMutableArray があります。そこに ALAssets オブジェクトを保存します。しかし、このアセットを比較したい場合は、isEqual または containsObject メソッドでは機能しません。URL で比較する場合にのみ機能します。
ALAsset *asset1 = [self.mutableAssets objectAtIndex:0];
ALAsset *asset2 = [self.selectedImages objectAtIndex:0];
NSLog(@"%@", asset1);
NSLog(@"%@", asset2);
if([self.selectedImages containsObject:[self.mutableAssets objectAtIndex:0]]) {
NSLog(@"the same1");
}
if([asset1 isEqual:asset2]) {
NSLog(@"the sames2");
}
if([asset1.defaultRepresentation.url isEqual:asset2.defaultRepresentation.url]) {
NSLog(@"the same3");
}
次の行のみを示します。
ALAsset - Type:Photo, URLs:assets-library://asset/asset.JPG?id=E8947286-22E2-42E4-A904-14D940A387B3&ext=JPG
ALAsset - Type:Photo, URLs:assets-library://asset/asset.JPG?id=E8947286-22E2-42E4-A904-14D940A387B3&ext=JPG
the same3
なぜそれが起こるのですか?