更改委托方法的参数类型

时间:2013-03-04 19:49:46

标签: ios objective-c delegates nsinteger nsuinteger

我有一个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 

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

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

1 个答案:

答案 0 :(得分:0)

这样做很好。将NSInteger更改为NSUInteger只会执行普通的投射。但是,我会将NSInteger作为方法参数,然后我会在方法实现开始时将其明确地转换为NSUInteger