3

我有一个 NSURL 委托方法,它以 NSInteger 作为参数

- (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite 

有符号长整数的 NSInteger 范围为 -2147483647 到 2147483647。我的问题是,有时我得到的值超出了正数范围,这会导致该值变为我不想要的负数。

所以我将 NSInteger 更改为 NSUInteger

 - (void)connection:(NSURLConnection *)connection didSendBodyData:(NSUInteger)bytesWritten totalBytesWritten:(NSUInteger)totalBytesWritten totalBytesExpectedToWrite:(NSUInteger)totalBytesExpectedToWrite 

我的问题是是否可以进行这样的更改?到目前为止,我还没有遇到任何问题,正在调用该方法,并且我得到了预期的结果。

我担心可能会发生一些无法预料的问题。

4

1 回答 1

0

这样做很好。更改NSIntegerNSUInteger仅执行普通的铸造。但是,我会将其保留NSInteger为方法参数,然后在方法实现开始时将其显式转换为NSUInteger.

于 2013-03-04T20:32:57.760 回答