[NSData bytes]
'u tek tek gözden geçirip NSMutableString
'a ekleyebilir veya NSLog()
'u kullanarak bunları nasıl yazdırabilirim?NSData baytları üzerinden yineleme
cevap
Aksine bir değişken dize bayt ekleme yerine, verileri kullanarak bir dize oluşturun:
// Be sure to use the right encoding:
NSString *result = [[NSString alloc] initWithData:myData encoding:NSUTF8StringEncoding];
Eğer gerçekten bayt döngü isterseniz:
NSMutableString *result = [NSMutableString string];
const char *bytes = [myData bytes];
for (int i = 0; i < [myData length]; i++)
{
[result appendFormat:@"%02hhx", (unsigned char)bytes[i]];
}
Güncelleme! IOS 7'den beri, bir NSData nesnesindeki tüm baytlarda yineleme yapmak için yeni ve tercih edilen bir yol var. Bu arayan için tek bir bayt dizisi temel parçalar tüm düzleştirmek için gerektiğinden, çağıran NSData
hemen başlık altında birden fazla ayrık bayt dizisi topakları meydana gelebilir çünkü
, [NSData bytes]
bazen bellek verimsiz olabilir.
Bu davranıştan kaçınmak için, NSData öğesinin enumerateByteRangesUsingBlock:
yöntemini kullanarak baytları sıralamak daha iyidir; bu, mevcut altta yatan parçaların aralıklarını döndürerek, herhangi bir yeni dizi yapısı oluşturmaya gerek duymadan doğrudan erişebilmenizi sağlar. Tabii ki, sağlanan C-stili dizide uygunsuz bir şekilde etrafta dolaşmamaya dikkat etmelisiniz.
NSMutableString* resultAsHexBytes = [NSMutableString string];
[data enumerateByteRangesUsingBlock:^(const void *bytes,
NSRange byteRange,
BOOL *stop) {
//To print raw byte values as hex
for (NSUInteger i = 0; i < byteRange.length; ++i) {
[resultAsHexBytes appendFormat:@"%02x", ((uint8_t*)bytes)[i]];
}
}];
- 1. Ruby: Sabitler üzerinden yineleme
- 2. javascript Üzerinden Yineleme Yineleme ng-yineleme kullanılarak eşleştirilmesi
- 3. Python MySQLdb tablo üzerinden yineleme
- 4. JSON File PowerShell üzerinden yineleme
- 5. Yuvalanmış json nesne dizilimi üzerinden yineleme
- 6. Delphi 2010'da dizinlenmiş özellik üzerinden yineleme
- 7. Ember.js ember-data Üzerinden yineleme Kayıt Dizileri
- 8. Dize Dizisi NSData, Dize Dizisine NSData Dönüştürme
- 9. NSData isEqualtoData
- 10. Integers'e verimli paketleme baytları?
- 11. NSMutableData baytları nasıl kaldırır?
- 12. WebRequest GetResponseStream okuma baytları
- 13. CMSampleBufferRef dönüştürmek için NSData
- 14. Bir dizgi, NSData
- 15. NSData dosya türü doğrulaması
- 16. NSData contentOfUrl nil
- 17. Yapıları NSData Yapıları?
- 18. Swift'de NSData Yazdırma?
- 19. Seç'i seçer Nerede IEnumerable üzerinden iki yineleme sonuçlanır?
- 20. excel'e aktarım için datagrid satırları üzerinden yineleme (tekrar)
- 21. Python'da bu gömülü JSON "listesi" üzerinden nasıl yineleme yapılır?
- 22. C# Sunucuda saklanan tüm Oturumlar üzerinden yineleme mümkün mü? #
- 23. Baytları indekslediğimde neden int alırım?
- 24. "Yineleyici, dizeleri değil baytları döndürmelidir"
- 25. Java'da int için baytları dönüştürme
- 26. NSOutputStream üzerinden UIImage gönderme
- 27. Yineleme
- 28. yineleme
- 29. yineleme
- 30. yineleme/
doSomethingWithChar satırı, örn. Bir NSMutableString bayt onaltılık temsilini eklemek istiyorsanız? – yannis
nsdata aslında bir dizge değilse? 0x00 bayt içeriyorsa, tüm verilerde yineleyemezsiniz. –