Изменение типа параметра для методов делегата

У меня есть метод делегата 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,

Другие вопросы по тегам