相关疑难解决方法(0)

使用ARC的优点和缺点是什么?

在iOS项目中使用新的自动引用计数(ARC)内存管理方式有哪些优缺点?

使用iOS 5.0 SDK进行开发时,您可以选择不使用ARC吗?

您是否为新项目推荐ARC或手动引用计数(MRC)?

使用ARC的应用程序是否能够在比iOS 5.0更旧的操作系统版本上运行?

iphone reference-counting ios ios5 automatic-ref-counting

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

将现有CGColor分配给CGColor属性适用于iOS模拟器,而不是iOS设备.为什么?

我知道如何解决我即将概述的问题,但是,我有点困惑的是为什么代码方案在iOS模拟器中工作但在我的iPad上不起作用.

我有一个检查各种属性的方法,然后CALayer根据属性的状态设置a的背景颜色.以下代码与我的颜色分配方法类似:

//This will be the CALayer BGColor...
CGColor c = UIColor.blueColor.CGColor; //Blue is the default
switch (myState)
{
    case state_one:
        c = UIColor.greenColor.CGColor;
        //... more code ...
        break;
    case state_two:
        c = UIColor.redColor.CGColor;
        //... more code ...
        break;
    case state_three: //multiple cases are like the state_three case.
        //Other code, but I don't need to assign the color.  Blue works...
}

myCALayer.backgroundColor = c; //Oh-noes!!! Here we get the dreaded EXC_BAD_ACCESS on iPad
//...more code dealing with the …
Run Code Online (Sandbox Code Playgroud)

exc-bad-access objective-c ipad ios ios-simulator

8
推荐指数
2
解决办法
9239
查看次数

字典的深层副本在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
查看次数