Sorry ich glaube das ich das erste in einem falschen Bereich gepostet habe.
Hier meine Frage.
Versuche schon seit Tagen ein NSView in ein anderes zu kopieren. Habe stundenlang im Google gesucht aber immer nur etwa unverständliche oder inkompatible (für ältere XC/SWIFT) Beispiele gefunden.
Die letzte Version ist diese aber ich weiß nicht wie ich sie einsetzen soll.
// Copy NSView
public func insecureCopy<T: NSCoding>(of original: T) throws -> T {
/// Approach 4
/// It seems theres a solution after all!!
///See developer.apple.com/forums/thread/107533
if #available(macOS 10.13, *) {
let data = try NSKeyedArchiver.archivedData(withRootObject: original, requiringSecureCoding: false)
let unarchiver = try NSKeyedUnarchiver(forReadingFrom: data)
unarchiver.requiresSecureCoding = false
let copy = unarchiver.decodeObject(forKey: NSKeyedArchiveRootObjectKey) as! T
return copy
} else { /// Fallback (untested)
let data = NSKeyedArchiver.archivedData(withRootObject: original)
let unarchiver = NSKeyedUnarchiver(forReadingWith: data)
unarchiver.requiresSecureCoding = false
let copy = unarchiver.decodeObject(forKey: NSKeyedArchiveRootObjectKey) as! T
return copy
}
}
Wäre nett wenn mir jemand helfen könnte. Danke
Hier meine Frage.
Versuche schon seit Tagen ein NSView in ein anderes zu kopieren. Habe stundenlang im Google gesucht aber immer nur etwa unverständliche oder inkompatible (für ältere XC/SWIFT) Beispiele gefunden.
Die letzte Version ist diese aber ich weiß nicht wie ich sie einsetzen soll.
// Copy NSView
public func insecureCopy<T: NSCoding>(of original: T) throws -> T {
/// Approach 4
/// It seems theres a solution after all!!
///See developer.apple.com/forums/thread/107533
if #available(macOS 10.13, *) {
let data = try NSKeyedArchiver.archivedData(withRootObject: original, requiringSecureCoding: false)
let unarchiver = try NSKeyedUnarchiver(forReadingFrom: data)
unarchiver.requiresSecureCoding = false
let copy = unarchiver.decodeObject(forKey: NSKeyedArchiveRootObjectKey) as! T
return copy
} else { /// Fallback (untested)
let data = NSKeyedArchiver.archivedData(withRootObject: original)
let unarchiver = NSKeyedUnarchiver(forReadingWith: data)
unarchiver.requiresSecureCoding = false
let copy = unarchiver.decodeObject(forKey: NSKeyedArchiveRootObjectKey) as! T
return copy
}
}
Wäre nett wenn mir jemand helfen könnte. Danke