DEV Community

Cover image for Array of weak in Swift.
Sergey Leschev
Sergey Leschev

Posted on

 

Array of weak in Swift.

Array of weak references in Swift.
Create a generic wrapper as:

class Weak<T: AnyObject> {
  weak var value : T?
  init (value: T) {
    self.value = value
  }
}
Enter fullscreen mode Exit fullscreen mode

Add instances of this class to your array.

class Stuff {}
var weaky: [Weak<Stuff>] = 
  [Weak(value: Stuff()), Weak(value: Stuff())]
Enter fullscreen mode Exit fullscreen mode

When defining Weak you can use either struct or class.
Also, to help with reaping array contents, you could do something along the lines of:

extension Array where Element:Weak<AnyObject> {
  mutating func reap () {
    self = self.filter { nil != $0.value }
  }
}
Enter fullscreen mode Exit fullscreen mode

The use of AnyObject above should be replaced with T - but I don't think the current Swift language allows an extension defined as such.


Contacts
I have a clear focus on time-to-market and don't prioritize technical debt. And I took part in the Pre-Sale/RFX activity as a System Architect, assessment efforts for Mobile (iOS-Swift, Android-Kotlin), Frontend (React-TypeScript) and Backend (NodeJS-.NET-PHP-Kafka-SQL-NoSQL). And I also formed the work of Pre-Sale as a CTO from Opportunity to Proposal via knowledge transfer to Successful Delivery.

🛩️ #startups #management #cto #swift #typescript #database
📧 Email: sergey.leschev@gmail.com
👋 LinkedIn: https://www.linkedin.com/in/sergeyleschev/
👋 LeetCode: https://leetcode.com/sergeyleschev/
👋 Twitter: https://twitter.com/sergeyleschev
👋 Github: https://github.com/sergeyleschev
🌎 Website: https://sergeyleschev.github.io
🖨️ PDF Design Patterns: Download

Top comments (0)

Dark Mode

🌚 Friends don't let friends browse without dark mode.

Just kidding, it's a personal preference. But you can change your theme, font, etc. in your settings.