相关疑难解决方法(0)

iOS:在哪里可以找到iOS的OSStatus代码的完整列表?

我可以noErr = 0在OS X库中轻松找到源代码.但是很难OSStatus在iOS上找到完整的错误代码列表.

在Mac OS X上,找到类似的东西并不难

kAudioHardwareUnsupportedOperationError
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找到iOS OSStatus代码的有用信息.有一个完整的列表或任何指向定义它们的头文件的指针会很好.

谢谢!

更新:

我不认为我的问题与上述问题重复."可能重复"问题的操作想要将他已经知道的4-char代码转换为人类可读的字符串.相反,这是我的进一步规范:

我甚至不知道用于iOS的4-char或typedefed整数.我希望看到类似完整代码列表的内容,就像您在许多C++框架/库设计中通常会看到的那样,例如枚举列表,标准异常,甚至是OSX k-something代码,至少可以可以单独在Xcode文档中找到.

我对这些代码的使用包括:

在我的自定义函数中,例如,一些必须返回OSStatus的CoreAudio回调,我想返回这些内置的人类可读代码来指示运行时错误的类型.没有列表,除了noErr之外,我不知道该返回什么.

显然,许多OSX k代码在iOS环境下是未定义的,因此它们不能透明地使用.

更新(结论):

我终于找到了一个线索:在Xcode文档(管理器)中搜索关键字"结果代码",我们在"系统指南"结果中获得或多或少的归类返回代码文档部分.这对我原来的问题来说已经足够了. -

error-handling cocoa ios

20
推荐指数
1
解决办法
3万
查看次数

iOS/C:将"整数"转换为四个字符串

与音频会话编程相关的许多常量实际上是四字符串(音频会话服务参考).这同样适用于从函数返回的OSStatus代码AudioSessionGetProperty.

问题是,当我尝试打开这些东西时,它们看起来像1919902568.我可以将其插入计算器并打开ASCII输出,它会告诉我"roch",但必须有一个编程方式做这个.

我使用以下块在我的一个C函数中取得了有限的成功:

char str[20];
// see if it appears to be a four-character code
*(UInt32 *) (str + 1) = CFSwapInt32HostToBig(error);
if (isprint(str[1]) && isprint(str[2]) && isprint(str[3]) && isprint(str[4])) {
    str[0] = str[5] = '\'';
    str[6] = '\0';
} else {
    // no, format as integer
    sprintf(str, "%d", (int)error);
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是从当前函数中抽象出这个特性,以便在别处使用它.我试过了

char * fourCharCode(UInt32 code) {
    // block
}
void someOtherFunction(UInt32 foo){
    printf("%s\n",fourCharCode(foo));
}
Run Code Online (Sandbox Code Playgroud)

但这给了我"à*€/3íT:ê*€/ +€/",而不是"roch".我的C fu不是很强大,但我的预感是上面的代码试图将内存地址解释为字符串.或者可能存在编码问题?有任何想法吗?

c ios

13
推荐指数
2
解决办法
6550
查看次数

Mac OS X 简单录音机

有没有人有一些适用于 Mac OS X 的 SIMPLE 录音机的示例代码?我只想录制来自 MacBook Pro 内置麦克风的声音并将其保存到文件中。就这些。

我已经搜索了几个小时,是的,有一些示例可以录制语音并将其保存到文件中,例如http://developer.apple.com/library/mac/#samplecode/MYRecorder/Introduction/Intro.html。Mac OS X 的示例代码似乎比 iPhone 的类似示例代码复杂约 10 倍。

对于 iOS,命令非常简单:

soundFile =[NSURL FileURLWithPath:[tempDir stringByAppendingString:@"mysound.cap"]];
soundSetting = [NSDictionary dictionaryWithObjectsAndKeys: // dictionary setting code left out goes here
soundRecorder = [[AVAudioRecorder alloc] initWithURL:soundFile settings:soundSetting error:nil];
[soundRecorder record];
[soundRecorder stop];  
Run Code Online (Sandbox Code Playgroud)

我认为有代码可以为 Mac OS X 执行此操作,就像 iPhone 版本一样简单。感谢您的帮助。

这是代码(目前播放器不起作用)

#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>

@interface MyAVFoundationClass : NSObject <AVAudioPlayerDelegate>
{
    AVAudioRecorder *soundRecorder;

}

@property (retain) AVAudioRecorder *soundRecorder;

-(IBAction)stopAudio:(id)sender;
-(IBAction)recordAudio:(id)sender;
-(IBAction)playAudio:(id)sender;

@end


#import "MyAVFoundationClass.h" …
Run Code Online (Sandbox Code Playgroud)

macos xcode cocoa core-audio avaudiorecorder

3
推荐指数
1
解决办法
6432
查看次数

标签 统计

cocoa ×2

ios ×2

avaudiorecorder ×1

c ×1

core-audio ×1

error-handling ×1

macos ×1

xcode ×1