我有一个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
我的问题是,是否可以做出这样的改变?到目前为止,我还没有遇到任何问题,正在调用该方法,我得到了预期的结果。
我担心可能会发生的一些无法预料的问题。
答案 0 :(得分:0)
这样做很好。将NSInteger
更改为NSUInteger
只会执行普通的投射。但是,我会将NSInteger
作为方法参数,然后我会在方法实现开始时将其明确地转换为NSUInteger
。