ios - 如何复制自定义对象?

标签 ios swift

我需要复制一个自定义对象。是否可以不手动复制每个字段?

 var test1  = CustomerInfo()
 var test2 = CustomerInfo()
 test1 = test2
 test1.customername = "First"
 test2.customername = "Second"

 print(test1.customername) /* Getting "Second" , actually i want to get "First" */

请建议我任何可能的解决方案?

最佳答案

 func copy(with zone: NSZone? = nil) -> Any {
        let copy = CustomerInfo(myIvar1: Type, myIvar2: type)//constructor or your class
        return copy
    }
 var test1  = CustomerInfo()
 var test2 = test1.copy as! CustomerInfo

你好简,

  1. 需要确认NSCopying协议(protocol)并实现上面的copyWithZone:方法。

  2. 在 copyWithZone 方法中,只需使用您的构造函数方法创建对象并返回该对象。

  3. 每当您想要复制时,只需在令人兴奋的对象上调用复制即可。 如需完整引用,请关注苹果官方 https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/ObjectCopying.html

如果您的对象主要关注复制,则只需使用结构而不是类,因为它们是值类型而不是引用类型。将您的类更改为结构将使您的类型成为值类型,但有很多面向对象的限制。 谢谢

关于ios - 如何复制自定义对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45913005/

相关文章:

ios - 在应用内购买后重新加载 SKScene 或 View 以删除 iAd

ios - 使用 NSDictionary 元素缓慢创建 NSMutableArray

ios - 在不访问主线程的情况下保存 NSManagedObjectContext

swift - 如何从 IOS 客户端连接到 Spring WebSocket 服务器?

uiviewcontroller - 将 UIViewController 显示为模式时隐藏 UITabBar

iOS 分段上传照片

Swift Closure 单语句问题

swift - 获取 NSTableView 中自定义 NSTableCellView 的位置

ios - 无法设置CALayer的边框颜色

ios - 在 UITextView 中获取文本后如何设置 textAlignment?