Благодаря всем, которые ответили на мой вопрос. Похож на согласие, должен использовать пространства имен, если Вы хотите, поскольку нет спонсируемых направляющих никакого DHH Путем подхода.:)
Снова, спасибо все!
UIButton не соответствует NSCopying, поэтому вы не можете сделать копию с помощью -copy.
Однако он соответствует NSCoding, поэтому вы можете заархивировать текущий экземпляр, а затем разархивировать ' copy '.
NSData *archivedData = [NSKeyedArchiver archivedDataWithRootObject: button];
UIButton *buttonCopy = [NSKeyedUnarchiver unarchiveObjectWithData: archivedData];
После этого вам нужно будет при необходимости назначить любые дополнительные свойства, которые не были перенесены в архив (например, делегат).
UIButton
не соответствует протоколу NSCopying
, поэтому вам придется скопировать его вручную. С другой стороны, это неплохо, так как не совсем понятно, что значит копировать кнопку. Например, следует ли добавить копию кнопки в то же представление, в котором находится оригинал? Должен ли он запускать те же методы при касании?
Если он реализует протокол NSCopying
, то метод -copy
должен помочь.
Дополнительную информацию о методе -copy
и о том, как он работает с подобъектами, можно найти на справочном сайте ADC. Как упоминает Стивен Дарлингтон, вам необходимо реализовать протокол NSCopying
в своем объекте.