2015-12-17 3 views
1

Я столкнулся с одним сообщением, помогающим с этой проблемой, но это не кажется очень ясным. Я пытаюсь захватить значение переменной несколько раз. Переменная radians всегда меняется, и я хочу сохранить значение radians в то время, когда оно мне нужно, и поместить его в массив.Swift: Capture Текущее значение переменной

Пример

 var initialRadian = [CGFloat]() 
     var radians: CGFloat! = nil 

     //Initial Radian Set 
     if initialRadian.count == 0 { 
      if IsHeld == true { 
       initialRadian.append(radians) 
      } 
     } 
     if initialRadian.count == 1 { 
      if IsHeld == true { 
       initialRadian.append(radians) 
      } 
     } 
     if initialRadian.count == 2 { 
      if IsHeld == true { 
       initialRadian.append(radians) 
      } 
     } 

Я хотел бы значение radians быть захваченным Если выполняется пробегов заявление.

+0

Не могли бы вы предоставить еще какой-нибудь контекст? Каков тип «радианов»? Почему у вас есть три отдельных заявления if? Обычно не должно быть проблем с добавлением экземпляра структуры в массив для сохранения копии его значения. –

+0

@ MarcKhadpe 'radians' является' CGFloat'. Он постоянно меняется, и я хочу добавить значение «радианы» в свой массив. –

ответ

1

Я не понимаю, именно то, что делает ваш код. Это достаточно просто, чтобы сохранить копию CGFloat в массиве, чтобы зафиксировать ее значение в данный момент времени. Вот пример.

var initialRadian = [CGFloat]() 
var radians: CGFloat = 7 

// save the current value of radians 
initialRadian.append(radians) 

// modify radians 
radians = 49.3 

// save the modified value of radians 
initialRadian.append(radians) 

// modify radians again 
radians = -3 

// save it again 
initialRadian.append(radians) 

// the initialRaidan array now holds all the values of radians we saved 
for val in initialRadian { 
    print(val, terminator: " ") // prints "7.0 49.3 -3.0 " 
} 
1

Попробуйте это, я думаю, что это работает

if initialRadian.count == 0 { 
     if IsHeld == true { 
      initialRadian.addObject(radians) 
     } 
    } 
    else if initialRadian[1] == nil { 
     if IsHeld == true { 
      initialRadian.addObject(radians) 
     } 
    } 
    else if initialRadian[2] == nil { 
     if IsHeld == true { 
      initialRadian.addObject(radians) 
     } 
    } 
+0

Нет, изменения радианов. Я хочу, чтобы значение «радианов» было зафиксировано, когда выполняется оператор. –

+0

'addObject' дает мне ошибки. –

+0

initialRadian take as NSMutableArray –