私は 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. NSCoding、NSData、UIImagesとperformance
- 8. NSDataとbase64エンコーディングのSOAPリクエスト
- 9. NSDataからNSStringを印刷し、HMACハッシュを比較する
- 10. モバイル向けのピクセルとパーセンテージの比較
- 11. フィールドの比較とパーセンテージの取得
- 12. NSDataの長クラッシュ
- 13. NSDataのCGPDFDocumentRef
- 14. カスタムクラスのNSData?
- 15. カスタムオブジェクトのNSData
- 16. NSDataのファイルパス
- 17. NSData isEqualtoData
- 18. NSData null
- 19. XamarinのNSDataのNSString.CreateNative()と等価です
- 20. SwiftデータとNSDataの3つの違い
- 21. NSDataのバイト配列の一部を別のNSData型にコピー
- 22. NSDataの逆順バイト
- 23. NSDataファイルタイプの検証
- 24. NSDataへのiPodライブラリパス
- 25. のNSData subdataWithRange質問
- 26. NSDataは別のNSDataの部分文字列ですか?
- 27. NSDataからNSArray
- 28. デコード不明NSData
- 29. NSData to NSString toåöö
- 30. NSURL、URL、NSData、データ
ありがとう、それは素晴らしいです! – LightNight