Instead, we can change our
mutableDataaccessor to prevent copying when there are no other references to thedatavariable. To do this, we need to check if the data is uniquely referenced. In other words, we only make a copy of the data if the data is shared. We can do this using theisUniquelyReferencedNonObjCfunction. This is the reason why we needBox: it only works on Swift classes.NSMutableDatais an Objective-C class, and then the function doesn't work.[…]
Now we have full copy semantics, and efficient behavior: only when a copy is really necessary, it is made. This way, we never have to remember to write
data.copy()ourselves, we implemented it correctly once and can then forget about it.
CocoaiOSLanguage DesignMacProgrammingSwift Programming Language
Black Friday
Blog
Archives
Tag Cloud
Top Posts
Recently Updated
RSS Feed ·Comments
Mastodon ·Twitter
Apple News
Trackback
Support this site viaPatreon.
Try my Mac apps: