相关疑难解决方法(0)

如何为项目中的单个文件禁用ARC?

我在我的项目中成功使用ARC.但是,我遇到了一些文件(例如,在单元测试和模拟对象中),其中ARC的规则现在更加脆弱.我记得听说有一种方法可以在每个文件的基础上禁用ARC,但我无法找到这个选项.

这可能吗?如何基于每个文件禁用ARC?

xcode objective-c automatic-ref-counting manual-retain-release

1332
推荐指数
14
解决办法
33万
查看次数

新的自动引用计数机制如何工作?

有人可以简单地向我解释ARC是如何工作的吗?我知道它与垃圾收集不同,但我只是想知道它是如何工作的.

此外,如果ARC在没有阻碍性能的情况下完成GC的工作,那么为什么Java使用GC?为什么不使用ARC呢?

cocoa-touch garbage-collection objective-c automatic-ref-counting

206
推荐指数
3
解决办法
6万
查看次数

带ARC的Xcode 4.2:我的代码是否会在固件版本低于5.0的iOS设备上运行?

我将我的Xcode更新为4.2版本,其中包括ARC技术.这似乎是一件好事,但如果我根据Apple的建议启用ARC并编辑我的代码,我的应用程序是否可以在4.3.x设备上构建和运行?或仅适用于iOS 5的?

xcode ios automatic-ref-counting

4
推荐指数
1
解决办法
1353
查看次数

字典的深层副本在Xcode 4.2中给出了分析错误

我在NSDictionary类别中有以下方法,可以进行深层复制,工作正常.

我刚从Xcode 4.1升级到4.2,Analyze函数为此代码提供了两个分析器警告,如下所示:

- (id)deepCopy;
{
    id dict = [[NSMutableDictionary alloc] init];
    id copy;

    for (id key in self)
    {
        id object = [self objectForKey:key];

        if ([object respondsToSelector:@selector(deepCopy)])
            copy = [object deepCopy];
        else
            copy = [object copy];

        [dict setObject:copy forKey:key];

        // Both -deepCopy and -copy retain the object, and so does -setObject:forKey:, so need to -release:
        [copy release];  // Xcode 4.2's Analyze says this is an incorrect decrement of the reference count?!
    }

    return dict;  // Xcode 4.2's Analyze says …
Run Code Online (Sandbox Code Playgroud)

cocoa deep-copy analyzer clang-static-analyzer xcode4.2

3
推荐指数
2
解决办法
1595
查看次数

关于自动引用计数,我需要了解什么?

我有一个应用程序我正在更新到最新版本的Xcode,并且遇到了与自动引用计数(ARC)相关的多个错误.

这些错误让我打电话给例如,autorelease并调整我编写的处理内存管理的其他代码.

锵文件上写着:

[ARC]不提供循环收集器; 用户必须明确管理生命周期.

......这让我很紧张 过去,我一直被Objective-C内存管理问题所困扰retain,release并且autorelease在我的代码中依赖于验证每一个.

现在,ARC正在呼唤我改变我的内存管理语义.为了建立对ARC内存管理的信心,我需要知道什么?

xcode memory-management objective-c clang automatic-ref-counting

2
推荐指数
1
解决办法
162
查看次数