我想实现一个方法,可以将对象的属性从A复制到B.例如
A的名字= @“a”,
A的代码= @“1”,
A的地址= 0x100(假)。
在我使用
之后B的名字= @“b”,
B的代码= @“2”,
B的地址= 0x200。
使用自定义复制方法后,
A = [A copyWith:B];
现在
A的名字= @“b”,
A的代码= @“2”,
但是
A的地址= 0x100
不会改变。
代码:
#import <Foundation/Foundation.h>
@interface MyObject : NSObject
@property (copy, nonatomic) NSString *name;
@property (copy, nonatomic) NSString *code;
@end
有什么想法吗?
答案 0 :(得分:0)
然后只需删除NSCopying并编写自己的复制方法,例如:
-(void)copyMyObjectTo:(MyObject*)obj{
obj.name = [NSString stringWithFormat:@"%@",self.name];
obj.code = [NSString stringWithFormat:@"%@",self.code];
}
并称之为:
[B copyMyObjectTo:A];
它应该有用
和 @Rob 一样,如果您使用复制
保留属性,则无需创建新的字符串对象答案 1 :(得分:0)
使用objc / runtime。从新对象获取所有objc_propertis并使用KVC
设置旧对象的值