macOS - [NSValue valueWithCGAffineTransform:] - PullRequest
0 голосов
/ 02 марта 2019

Как мне создать экземпляр NSValue, который содержит CGAffineTransform?

UIKit предоставляет [NSValue valueWithCGAffineTransform:], а AppKit - нет.

Нужно ли использовать valueWithBytes:objCType: статический метод?

1 Ответ

0 голосов
/ 02 марта 2019

CGAffineTransform - это struct

struct CGAffineTransform {
  CGFloat a, b, c, d;
  CGFloat tx, ty;
};

. Правильный способ работы со структурами описан в Руководство по программированию кодирования значения ключа - Представление значений, не являющихся объектами (Обертывание и развертываниеСтруктуры)

CGAffineTransform transform;
NSValue *value = [NSValue valueWithBytes:&transform objCType:@encode(CGAffineTransform)];
...