我只花了最后两个小时抨击我的额头对着我的代码,试图弄清楚它有什么问题.我最终把它缩小到一对线.
NSArray *components = [string componentsSeparatedByString:@" "];
if ([components count] > 1){
retainedProperty1 = [header objectAtIndex:0];
retainedProperty2 = [header objectAtIndex:1];
}
Run Code Online (Sandbox Code Playgroud)
每当我在执行延迟后尝试访问这些字段中的任何一个时(我正在使用CocoaAsyncSocket,并且它会在第二次从套接字读取时引入此对象所需的其余数据),它们都会变为僵尸.我只是想知道为什么会发生这种情况?
你骗自己了.你说的是retainedProperty1 = ...,你实际上是在分配给伊娃,而不是财产.除非您使用ARC(并且您不是或者您不会遇到此问题),否则这不会进行任何内存管理.它甚至不会释放这个伊娃的先前价值.你应该说
self.retainedProperty1 = ...
self.retainedProperty2 = ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |