2014-10-13 5 views
2

Im пытается вырезать изображение на 9 частей в SWIFT. Im получение этой ошибки «CGFloat» не конвертируется в «Double» «. Я получаю эту ошибку, когда я помещаю «i» или «j» в две переменные.«CGFloat» не конвертируется в «двойную» ошибку в SWIFT (iOS)

Ниже приведена часть кода, используемого для обрезки изображения.

for i in 1...3 
    { 
     for j in 1...3 
     { 
      var intWidth = (i * (sizeOfImage.width/3.0)) 
      var fltHeight = (j * (sizeOfImage.height/3.0)) 
     var portion = CGRectMake(intWidth,fltHeight, sizeOfImage.width/3.0, sizeOfImage.height/3.0); 
      . 
      . 
     "Code goes on" 

Не мог понять, в чем проблема. Пожалуйста помоги. Заранее спасибо.

-Riyazul Aboobucker

ответ

3

В быстры нет неявного преобразования числовых типов данных, и вы смешиваете целые и поплавки. Вы должны явно преобразовать индексы в CGFloat с:

var intWidth = (CGFloat(i) * (sizeOfImage.width/3.0)) 
var fltHeight = (CGFloat(j) * (sizeOfImage.height/3.0)) 

Как часто происходит в быстры, сообщение об ошибке вводит в заблуждение - он говорит:

«CGFloat» не конвертируется в «Double»

тогда я бы ожидать:

«СГП loat 'не конвертируется в' Int '

+0

Oh. Большое спасибо. Это сработало. :) –