您的位置:首页 > 编程语言

ARC写的代码 外部非ARC环境调用时到底是否需要release

2014-11-11 23:08 393 查看
注:下面的说法貌似仍然有问题,问题出在我  [NCMemoryControllershareMemoryControllerWithOpen:YESwithClientId:APPID];
这句话上,因为不是alloc申请的,所以不能release

(2014,11,18)

今天遇到个问题  找了挺长时间没找到问题

是这样的,同事写了个控制器类 NCMemoryController 打成了.a文件供外部调用 

NCMemoryController 这个类同事当时应该是用ARC写的,而我的项目因为是老项目的缘故暂时用的还是非ARC(即MRC) 

我像下边这种写法 程序居然会崩溃  一直没搞明白  后来QQ群里有个朋友说了才知道  后边的release是不可以有的     

把 release去掉就可以了

NCMemoryController *memoryController = [NCMemoryControllershareMemoryControllerWithOpen:YESwithClientId:APPID];
    memoryController.hidesBottomBarWhenPushed =YES;
    [self.navigationControllerpushViewController:memoryControlleranimated:YES];
   //  [memoryControllerrelease];

另把朋友的原话放这吧:
你不需要release。。。

南京-Zippo-2Y  22:57:34

不管在哪里。。。取决于你的调用的类是用mrc写还是arc写的

你说A push到B

南京-Zippo-2Y  22:57:58

然后刚push过去

南京-Zippo-2Y  22:58:05

你就把它释放了。你觉得合适吗。。。

南京-Zippo-2Y  22:58:18

人家是arc。。。你非要给它释放一次。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: