Подтвердить что ты не робот

Как конвертировать CGPoint в NSValue в swift?

Как мой заголовок вопроса говорит, как я могу преобразовать CGPoint в NSValues, поэтому я могу сохранить его в массив In swift.

В objective-C мы можем сделать это следующим образом:

  // CGPoint converted to NSValue
     CGPoint point = CGPointMake(9, 9);
     NSValue *pointObj = [NSValue valueWithCGPoint:point];

Но может ли кто-нибудь сказать мне, что я могу сделать это быстро?

Спасибо заранее.

4b9b3361

Ответ 1

Попробуйте что-то вроде этого:

let point = CGPointMake(9, 9)
var pointObj = NSValue(CGPoint: point)

Ответ 2

Точно так же, как вы думаете:

let point = CGPoint(x: 9.0, y: 9.0)
let pointObj = NSValue(CGPoint: point)
let newPoint = pointObj.CGPointValue()

Ответ 3

Если вы не планируете использовать массив в Objective-C и можете сохранить его как массив Swift, тогда вам не нужно превращать точку в NSValue, вы можете просто добавить точку в массив:

let point1 = CGPoint(x: 9.0, y: 9.0)
let point2 = CGPoint(x: 10.0, y: 10.0)

let pointArray = [point1, point2] // pointArray is inferred to be of type [CGPoint]

let valuesArray = pointsArray as [NSValue]

Ответ 5

Свифт 4

let point = NSValue.init(cgPoint: mask.position)