2012-03-31 72 views
2

如何將typedef signed long CFIndex轉換爲typedef unsigned int NSUInteger將CFIndex轉換爲NSUInteger?

如果我使用CFIndex作爲NSUInteger類型的參數,那麼可以嗎?我沒有鑄造它,編譯器似乎並不介意。編譯器是否爲我做了轉換?

回答

4

在這裏你需要非常小心,因爲CFIndex是有符號的,NSUInteger是無符號的。有各種例程返回CFIndex -1。你需要在使用它作爲NSUInteger之前檢查它。

+0

我該如何檢查? – ma11hew28 2012-04-15 12:10:18

+0

if(index> = 0){NSUInteger uInde​​x =(NSUInteger)index; ...} else {error-or-return-or-whatever; } – 2012-04-15 15:59:30