我很困惑。 NSData的sizeof
和.length
之間的區別是什麼。長度是一個字符數?對?但這是否意味着sizeof?任何人都可以解釋我更準確地PLZNSData的sizeof和長度的區別
0
A
回答
3
sizeof()
是一種語言的關鍵字,返回一個類型的存儲大小,並在編譯時進行評估。
例如:
NSData *obj = [NSData data];
NSLog(@"%lu", sizeof(obj));
將一個64位的平臺作爲obj
在32位平臺或8上打印或者4是一個指針,這是一個指針多少空間需要在這些平臺上。
這是一樣的:根據不同的平臺
NSLog(@"%lu", 4);
或
NSLog(@"%lu", 8);
正在編制上。
但是NSData
是一個存儲數據的對象,它提供了length
方法,因此您可以詢問它當前存儲的數據量。它在運行時進行評估。
NSLog(@"%lu", obj.length);
打印0因爲那個NSData
對象是空的。
0
我不是在iOS的專家,但我試圖尋找了一下。看起來.Length
是「接收器中包含的字節數」。而.sizeof
代表「整個NSData結構在內存中佔用的實際字節數」。
在其他語言中也可能不同的表現 - 即C#的字符串:length
將是20對20個字符,但在C#中使用Unicode - sizof()
將返回40.然而,其他對象的行爲可能以完全不同的方式....
我認爲在你的榜樣sizeof()
但是可能返回兩個可能的結果 - 通過NSData的內部結構(如指針(S)到真實的數據,計數器等),有或沒有包含數據的大小佔用的字節數。
我想最好的辦法是設法保存一些數據,並比較兩種方法:)的輸出,如果NSData的根本指針 - 的.sizeof
結果將只是4
或8
- 指針的大小:)
相關問題
- 1. 長度和長度()有什麼區別?
- 2. NSData和NSArray - [__ NSArrayM長度]
- 3. sizeof(str -1)和sizeof(str)-1之間的區別?
- 4. sizeof(char *)和sizeof(char)的區別是什麼?
- 5. NSData的長度碰撞
- 6. 增加NSData的長度
- 7. NSData的長度爲零
- 8. 的sizeof(長)比的sizeof(* LP)
- 9. sizeof和alignof有什麼區別?
- 10. 內容長度和數據長度有什麼區別?
- 11. 轉換時的sizeof(長)==的sizeof(int)的
- 12. 如何[NSData的長度]轉換爲NSData的
- 13. 如何找出NSData數組的長度?
- 14. NSData的荒謬長度錯誤
- 15. jQuery中的val.length和val()。長度之間的區別?
- 16. 長度爲1的tcl列表和標量之間的區別?
- 17. JQuery .length()和.NET之間的區別返回的長度爲
- 18. 宏和函數中sizeof之間的區別
- 19. sizeof和.size()之間的區別爲一個向量C++
- 20. 尺寸和長度方法之間的區別?
- 21. SIZEOF返回不正確數組長度
- 22. 長輪詢和setTimeout之間的區別
- 23. Swift 3數據和NSData之間的區別
- 24. 模板類的等長sizeof
- 25. 長與長之間的區別?
- 26. 找到分區的長度
- 27. 有關的sizeof(字符*)和sizeof(的char [])
- 28. 精度和刻度有什麼區別?
- 29. Ruby中的ary [開始,長度]和ary [範圍]之間的區別
- 30. sizeof(int)和sizeof(int *)之間的區別是什麼?此語句是否爲int * numbers [] = {....}是否正確?
事實上,如果您忘記了Google的話,您可能會感到非常困惑... – holex 2014-09-02 13:41:43