Use weak instead of assign
Use strong instead of retain
Use __weak instead of __unsafe_unretained
Update Demo project