Should IBOutlet be weak or strong var? [duplicate]
Asked Answered
G

2

27

I'm using Xcode 6.2 for iOS projects. In older versions of Xcode, when a connection was create for an IBOutlet, it was always weak storage. Now when I create connections, they are defaulted to strong. I leave it that way and don't notice any difference.

Which version of Xcode did the default change to strong and why?

Gregoor answered 2/4, 2015 at 20:10 Comment(0)
D
35

Yes, previously outlets should generally be weak but Apple has changed that. Now they recommend to use strong outlets in the WWDC 2015 session Implementing UI Designs in Interface Builder. The only reason why it might be weak is retain cycle.

Drugstore answered 10/12, 2015 at 21:52 Comment(4)
With Xcode 8.3.1 the IBOutlets created in IB are weak varSupervise
The presenter goes over strong/weak connections at about 32:30 in the presentation. That said, I highly recommend watching the whole thing as well - tons of useful information especially if you're new to iOS development :)Exhaustless
Still the same in Xcode 10.0, the IBOutlets created in IB are still weak var.Radiosonde
Xcode uses whatever you chose last for weak / strong.Flier
M
14

It doesn't matter weak or strong the outlet is in most cases. You just be sure that you don't have strong reference cycles.

Subviews shouldn't have strong outlets to their superviews and view shouldn't have strong outlet to its controller, because superview already has strong reference to its subviews and controller has strong reference to its view.

Mycorrhiza answered 30/7, 2015 at 10:40 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.