私は NSData *object1
、もう1つはNSData *object2
です。どのようにしてこれらのオブジェクトをどのようなパーセンテージで比較することができますか?たとえば、Object1はObject2に似ています - 99%。ありがとう。NSDataとパーセンテージのNSDataとの比較
1
A
答えて
4
両方のケースでバイトを取得し、それらの多くが等しいかチェックを反復。
uint8_t* bytes1 = (uint8_t*)[object1 bytes];
uint8_t* bytes2 = (uint8_t*)[object2 bytes];
NSUInteger sameCount = 0;
for (NSUInteger i = 0 ; i < MIN([object1 length], [object2 length]) ; ++i)
{
if (bytes1[i] == bytes2[i])
{
sameCount++;
}
}
double fractionSame = (double) sameCount/(double) MIN([object1 length], [object2 length]);
は、上記1件のデータが他方よりも長い場合、あなたは余分な気にしない前提としています。
0
NSDataにはこのようなことはありません。あるNSDataの内容を他のNSDataの内容と比較する方法に最適化された独自のNSSortDescriptorを作成する必要があります。
1
本当にロジックに依存します。たとえば、画像を比較しようとすると(そのデータがNSDataとして保存されている)、write image comparison algorithmsが必要です。他の種類のデータである場合は、そのセマンティクスを最初に定義する必要があります。他のすべてが失敗した場合は、@ JeremyPの回答で十分であると思います。
関連する問題
- 1. NSURLConnectionとNSData + GCDの比較
- 2. plsとnsdataでの保存の比較
- 3. SBJsonとNSDataの
- 4. QLPreviewControllerとNSData?
- 5. メモリリーク - NSDataとNSMutableString
- 6. NSConcreteDataとNSData
- 7. フィールドの比較とパーセンテージの取得
- 8. NSCoding、NSData、UIImagesとperformance
- 9. NSDataとbase64エンコーディングのSOAPリクエスト
- 10. NSDataからNSStringを印刷し、HMACハッシュを比較する
- 11. NSDataのファイルパス
- 12. カスタムクラスのNSData?
- 13. NSDataの長クラッシュ
- 14. NSDataのCGPDFDocumentRef
- 15. カスタムオブジェクトのNSData
- 16. NSData null
- 17. NSData isEqualtoData
- 18. NSDataのバイト配列の一部を別のNSData型にコピー
- 19. のNSData subdataWithRange質問
- 20. NSDataへのiPodライブラリパス
- 21. NSDataの逆順バイト
- 22. NSDataファイルタイプの検証
- 23. NSDataは別のNSDataの部分文字列ですか?
- 24. NSData initWithContentsOfURL:options:errorPtr:デリゲートオブジェクト?
- 25. NSData writeToFile on iPhone
- 26. NSData to NSString toåöö
- 27. NSString from [NSData dataWithContentsOfURL:]
- 28. デコード不明NSData
- 29. ASIHttpRequest PDFをNSDataとして保存
- 30. オーディオとビデオをNSDataに変換する
ありがとう、それは素晴らしいです! – LightNight