小编Nik*_*uhe的帖子

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

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

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

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

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

Objective-C中究竟是什么叫做"类群"?

我在读NSArray就是这样的事情.听起来很沉重.我在桌面上有7本非常胖的书,关于Objective-C,Cocoa和C.他们都没有提到Class Cluster,至少我在书的后面的索引中找不到它.那是什么?

cocoa objective-c cocoa-design-patterns class-cluster

89
推荐指数
5
解决办法
3万
查看次数

如何在2.0兼容的应用程序中选择使用iPhone OS 3.0功能?

我想在我的2.0应用程序中使用iPhone OS 3.0的一些功能,当它在3.0设备上运行时.我不想一直使用3.0,因为有些客户还不想更新.

我尝试了MapKit.framework(-weak_framework MapKit)的弱连接.我发现它非常麻烦,因为我不得不欺骗编译器/链接器使用2.0 SDK以及除使用MapKit的代码之外的所有代码.

有没有人有这方面的经验?你在做什么来编译/链接.有没有人已经向Apple提交了一个应用程序,该应用程序弱化了其他操作系统版本的框架?

iphone iphone-sdk-3.0

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

C多个单行声明

当我宣布在一行上说多个变量时会发生什么?例如

int x, y, z;
Run Code Online (Sandbox Code Playgroud)

一切都是整体.问题是以下陈述中的y和z是什么?

int* x, y, z;
Run Code Online (Sandbox Code Playgroud)

它们都是int指针吗?

c variables declaration

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

在视图之间绘制线条的最佳方法是什么?

背景:我有一个自定义的scrollview(子类),其上有uiimageviews可拖动,基于我需要在uiscrollview的子视图中动态绘制一些行的拖动.(注意我需要在子视图中使用它们,因为稍后我需要更改视图的不透明度.)

所以在我花了很长时间开发代码之前(我是一个新手所以它需要我一段时间)我研究了我需要做什么并找到了一些可能的方法.只是想知道正确的方法是什么.

  1. 创建UIView的子类并使用drawRect方法绘制我需要的行(但不确定如何使其动态读取值)
  2. 在子视图上使用CALayers并在那里画画
  3. 使用CGContext函数创建绘制线方法
  4. 别的什么?

干杯求救

iphone cocoa-touch core-animation core-graphics calayer

17
推荐指数
2
解决办法
5225
查看次数

在Mac OS X上,如何在64位进程中中等大小的内存分配失败?

我正在构建照片书布局应用程序.应用程序经常将JPEG图像解压缩到内存位图缓冲区中.图像的大小限制在100万像素(而它们通常不超过1500万像素).

有时这些缓冲区的内存分配失败:[[NSMutableData alloc] initWithLength:]返回nil.这似乎发生在系统的自由物理内存接近零的情况下.

我的理解在Mac OS X中的虚拟内存系统是在64位进程的分配实际上(原文如此),不能失败.有16个exabyte的地址空间,我试图一次分配最多400兆字节.从理论上讲,我可以分配400亿个缓冲区而不会遇到可用地址空间的硬限制.当然,实际限制会阻止这种情况,因为交换空间受启动卷大小的限制.实际上,我只做了很少的这些分配(少于10个).

我不明白的是,无论物理内存有多低,分配都会失败.我认为 - 只要有交换空间,内存分配就不会失败(因为此时页面甚至没有映射).

该应用程序是垃圾收集.

编辑:

我有时间进一步深入研究这个问题,这是我的发现:

  1. 该问题仅发生在垃圾收集过程中.
  2. 当分配NSMutableData失败时,普通malloc仍然可以成功分配相同数量的内存.
  3. 当整体物理内存接近零(交换即将发生)时,总会发生错误.

我假设NSData用于NSAllocateCollectable执行分配而不是malloc在垃圾收集下运行时.

我的结论是,当物理内存很低时,收集器无法分配大块内存.再一次,我不明白.

macos 64-bit memory-management nsdata

12
推荐指数
1
解决办法
2332
查看次数

Scheme Script与Build Phase Script

在我进行构建之后,我想将一些文件复制到我的Xcode项目中.

我发现我可以做到这一点

  1. 在"构建阶段"中使用自定义构建步骤.

  2. 我还可以在Scheme编辑器中的不同"任务"之前和之后执行脚本:

    • 构建(这是我可以添加脚本的地方)
    • 测试
    • 轮廓
    • 分析
    • 档案

我不完全理解这两种方法之间的差异/可能的含义,我想知道何时选择这两种方法.谢谢你的澄清.

xcode

12
推荐指数
1
解决办法
2317
查看次数

Objective-C未初始化的指针与空指针

也许我的记忆已经完全消失了,但我想我记得在不初始化它们的情况下声明指针使它们指向零.但最近情况似乎并非如此.它总是这样吗?或者它与编译器设置有关?

null pointers objective-c

11
推荐指数
2
解决办法
3496
查看次数

如何在iOS中发布CGImageRef

我正在编写这种方法来计算图像的平均R,G,B值.以下方法将UIImage作为输入,并返回包含输入图像的R,G,B值的数组.我有一个问题:如何/我在哪里正确发布CGImageRef?

-(NSArray *)getAverageRGBValuesFromImage:(UIImage *)image
{
    CGImageRef rawImageRef = [image CGImage];

    //This function returns the raw pixel values
    const UInt8 *rawPixelData = CFDataGetBytePtr(CGDataProviderCopyData(CGImageGetDataProvider(rawImageRef)));

    NSUInteger imageHeight = CGImageGetHeight(rawImageRef);
    NSUInteger imageWidth = CGImageGetWidth(rawImageRef);

    //Here I sort the R,G,B, values and get the average over the whole image
    int i = 0;
    unsigned int red = 0;
    unsigned int green = 0;
    unsigned int blue = 0;

    for (int column = 0; column< imageWidth; column++)
    {
        int r_temp = 0;
        int g_temp = 0; …
Run Code Online (Sandbox Code Playgroud)

memory-leaks memory-management ios cgimageref

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

initWithCapacity:在NSArray中

initWithCapacity:声明NSMutableArray,但我想用它来初始化NSArray.我有什么解决方案吗?

iphone

9
推荐指数
3
解决办法
8990
查看次数