Как копировать UIButton в Objective C?

Благодаря всем, которые ответили на мой вопрос. Похож на согласие, должен использовать пространства имен, если Вы хотите, поскольку нет спонсируемых направляющих никакого DHH Путем подхода.:)

Снова, спасибо все!

22
задан Fattie 18 October 2014 в 10:23
поделиться

4 ответа

UIButton не соответствует NSCopying, поэтому вы не можете сделать копию с помощью -copy.

Однако он соответствует NSCoding, поэтому вы можете заархивировать текущий экземпляр, а затем разархивировать ' copy '.

NSData *archivedData = [NSKeyedArchiver archivedDataWithRootObject: button];
UIButton *buttonCopy = [NSKeyedUnarchiver unarchiveObjectWithData: archivedData];

После этого вам нужно будет при необходимости назначить любые дополнительные свойства, которые не были перенесены в архив (например, делегат).

65
ответ дан 29 November 2019 в 03:34
поделиться

UIButton не соответствует протоколу NSCopying , поэтому вам придется скопировать его вручную. С другой стороны, это неплохо, так как не совсем понятно, что значит копировать кнопку. Например, следует ли добавить копию кнопки в то же представление, в котором находится оригинал? Должен ли он запускать те же методы при касании?

4
ответ дан 29 November 2019 в 03:34
поделиться

Если он реализует протокол NSCopying , то метод -copy должен помочь.

0
ответ дан 29 November 2019 в 03:34
поделиться

Дополнительную информацию о методе -copy и о том, как он работает с подобъектами, можно найти на справочном сайте ADC. Как упоминает Стивен Дарлингтон, вам необходимо реализовать протокол NSCopying в своем объекте.

документация

0
ответ дан 29 November 2019 в 03:34
поделиться