![]() |
1
3
你的IVAR是如何申报的?它被宣布为财产吗?无论如何,它不会自动为您保留。 要么你需要做
或
如果将myemailString声明为
考虑一下:如果所有的ivar都自动为您保留,那么您将如何拥有一个变量 没有 想保留吗?这就是为什么它不能那样工作的原因。 |
![]() |
2
1
在buildemailmessage中创建myemail字符串时,永远不会保留该字符串。因此,在离开函数之后,它是自动释放的。然后当调用dealoc时,您的保留计数将为0,这将导致崩溃。如果要保留变量,则需要使用以下行
然后你可以打电话
|
![]() |
3
1
|
|
4
1
在将字符串存储到IVAR中之前,应该保留它:
如果没有这个,它将变得无效,因为在程序执行过程中稍后会自动释放它。这还将确保在调用析构函数时仍然分配它,从而防止释放崩溃。 |