Изменение типа параметра для методов делегата
У меня есть метод делегата 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 ответ
Это хорошо, чтобы сделать это. изменения NSInteger
в NSUInteger
выполняет обычное кастинг. Тем не менее, я бы сохранил NSInteger
в качестве параметра метода, а затем я приведу его явно в начале реализации метода к NSUInteger
,