web-dev-qa-db-ja.com

NSValueのCGPointをすばやく変換する方法は?

質問のタイトルにあるように、CGPointNSValuesに変換して、配列In Swiftに格納する方法を教えてください。

Objective-Cでは、次のように実行できます。

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

しかし、誰かが私にこれを迅速に行うにはどうすればよいか教えてもらえますか?

前もって感謝します。

20
Dharmesh Kheni

そのようなことを試してください:

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

あなたが想像する通りに:

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

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]
7
Abizern

スウィフト3

let pointObj =  NSValue(cgPoint: CGPoint(x:9, y:9))

https://developer.Apple.com/reference/foundation/nsvalue/1624531-init

1
Jan

スウィフト4

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