在Xcode5开发人员预览中打开我的项目后,当我尝试在Xcode 4.5中打开项目时,出现了几个.xib文件的错误.错误文本是:
The document "XXXX.xib" could not be opened. Could not read archive.
Please use a newer version of Xcode. Consider changing the document's Development Target to preserve compatibility.
Run Code Online (Sandbox Code Playgroud)
该项目在Xcode5中的开发目标似乎是iOS 5.0.
查看带有错误的.xib文件的源代码,很明显Xcode5中.xib文件的.xml结构发生了巨大的变化,需要重新格式化为向后兼容.
有没有办法为特定的.xib文件设置开发目标?有谁知道如何解决这个错误?
非常感谢.
我在配置为使用ARC的项目中遇到与NSMutableArray链接的内存泄漏,我认为应该为您处理这些事情.
以下代码触发NSNumbers的泄漏:
NSMutableArray *myArray = [[NSMutableArray alloc] init];
NSNumber *myNumber = [NSNumber numberWithFloat:10];
[myArray addObject:myNumber];
Run Code Online (Sandbox Code Playgroud)
运行最后一行在调试器中给出以下内容:
objc [1106]:类__NSCFNumber的对象0x765ffe0自动释放,没有池到位 - 只是泄漏 - 在objc_autoreleaseNoPool()中断以调试
除此之外,对象似乎正确地添加到可变数组中,
我做错了什么吗?
注意:项目中有一个类无法使用ARC,因此我使用编译器标志-fno-objc-arc将其从ARC中排除.但是,泄漏发生在使用ARC的其他类中.不确定这是否相关.
非常感谢您的帮助.
抱歉,如果这太模糊了......这是我在这里发表的第一篇文章,我对这个问题感到很满意!
我一直在尝试使用Audio Units将iOS Xcode项目转换为ARC,但它似乎打破了音频单元处理类的功能.一些症状......当我尝试在AUProcessor.mm中引用'self'时,AUProcessor类被称为'const*',而在ARC之前的版本中,没有提到'const*'.
这个指向'self'的指针会产生以下错误:
callbackStruct.inputProcRefCon = self;
[error] Assigning to 'void *' from incompatible type 'AUProcessor *const __strong'.
我可以通过在self之前添加(__bridge void*)来删除错误,这允许项目进行编译.但是,音频单元处理器在应用程序中不起作用.
在类的引用方面,我在代码中看不到与ARC之前版本明显不同的任何其他内容.
如果需要更多背景,请告诉我.
提前致谢!!
(顺便说一句,感谢所有这些论坛的贡献者......对于热衷但缺乏经验的程序员来说,他们真的是一个很好的资源!)
我正在为iPhone构建一个录音应用程序,我在其中使用远程音频设备.在对传入缓冲区执行某些音频分析后,我使用以下方法将缓冲区写入磁盘
ExtAudioFileWriteAsync
但是,我遇到的问题是记录的缓冲区比我想要的更安静.
我想通过在写入磁盘之前手动将它们乘以体积因子来增加缓冲区的容量.任何人都可以向我解释最好的方法吗?
(由于各种原因,最后阶段的手动调整比更改任何音频单元属性更有吸引力,否则这些属性对我的应用程序很有用.)
提前致谢!!
是否可以编写一个简单的 Objective-C IF 语句来检查 iOS 设备中的处理器是否为 arm64?
需要这样做的原因是一些为 32 位架构编写的 Core Audio 代码在 arm64 时崩溃了。似乎用 Int32 替换 Int16 引用可能会解决它,但我需要一个 IF 语句来确定处理器类型以确定要使用的处理器类型。
它可以通过查找特定的设备类型来完成,但处理器类型检查似乎是一种更优雅且面向未来的解决方案。