Конвертировать CFIndex в NSUInteger?

Как мне конвертировать typedef signed long CFIndex в typedef unsigned int NSUInteger?

Это нормально, если я использую CFIndex как аргумент типа NSUInteger, Я не бросил это, и компилятор, кажется, не возражает. Компилятор только делает преобразование для меня?

2 ответа

Здесь нужно быть очень осторожным, поскольку CFIndex подписан, а NSUInteger неподписан. Существуют различные процедуры, которые возвращают CFIndex -1. Вы должны проверить это, прежде чем использовать его как NSUInteger.

Да, компилятор выполняет неявное преобразование типов.

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