Если вам не нужен объект для жизни после возврата callingSomeMethod
, это безопасно сделать [[[MyObject alloc] init] callingSomeMethod]
.
Если вам нужно, чтобы объект жил после возвращения callingSomeMethod
, то ваша программа должна создать сильную ссылку на него до того, как callingSomeMethod
вернется. Примеры:
- Если
callingSomeMethod
устанавливает объект в качестве цели NSTimer
, вы в безопасности, потому что NSTimer
сохраняет свою цель.
- Если
callingSomeMethod
только устанавливает объект в качестве делегата UITableView
, вы не безопасны, потому что UITableView
не делает не , сохраняя свой делегат. В этом случае вы также должны создать сильную ссылку на объект в другом месте.