iOS:在哪里可以找到 iOS 的 OSStatus 代码的完整列表? [复制]
Posted
技术标签:
【中文标题】iOS:在哪里可以找到 iOS 的 OSStatus 代码的完整列表? [复制]【英文标题】:iOS: Where to find the full list of OSStatus codes for iOS? [duplicate] 【发布时间】:2013-05-30 03:46:14 【问题描述】:我可以在 OS X 库源代码中轻松找到noErr = 0
。但是在 ios 上很难找到OSStatus
的完整错误代码列表。
在 Mac OS X 上,找到类似的东西并不难
kAudioHardwareUnsupportedOperationError
但我似乎找不到有关 iOS OSStatus 代码的有用信息。最好有它们的完整列表或指向定义它们的头文件的任何指针。
谢谢!
更新:
我不认为我的问题与上述问题重复。该“可能重复”问题的操作者想要将他已经知道的 4 字符代码转换为人类可读的字符串。相反,这是我的进一步规范:
我什至不知道在 iOS 中使用什么 4-char 或 typedefed 整数。 我希望看到完整的代码列表,就像您通常在许多 C++ 框架/库设计中看到的那样,例如枚举列表或标准异常,甚至是 OSX k-something 代码,至少可以只能在 Xcode 文档中找到。
这些代码的用例包括:
在我的自定义函数中,例如一些必须返回 OSStatus 的 CoreAudio 回调,我想返回这些内置的人类可读代码来指示运行时错误的类型。没有列表,除了noErr,我不知道要返回什么。
显然,很多 OSX k-codes 在 iOS 环境下是未定义的,因此无法透明使用。
更新(结论):
我终于找到了一个线索:在 Xcode 文档(Organizer)中搜索关键字“Result Codes”,我们在“System Guides”结果中得到或多或少分类的返回码文档部分。这对我原来的问题来说已经足够好了。 ——
【问题讨论】:
我认为没有完整的列表;我相信这取决于所使用的 API 何时应该与函数一起记录。 这真是一团糟,而且我认为没有任何单独的文档可以说明它——至少如果有的话,我从来没有找到过。搜索它必须的头文件。 我终于找到了一条线索:在 Xcode 文档(Organizer)中搜索关键字“Result Codes”,我们在“System Guides”结果中得到或多或少分类的返回码文档部分。这对我最初的问题来说已经足够了。 确实,@kakyo,在 Organizer 中搜索错误代码对我有用。我为首先尝试谷歌而感到羞耻,尽管它确实把我带到了这里。 ;) osstatus.com 为我找到了一些随机的 【参考方案1】:我能做的最好的帮助是提供从命令行使用 find
的结果:
$ cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk
$ find . -name \*.h -exec fgrep -l OSStatus \;
./System/Library/Frameworks/AudioToolbox.framework/Headers/AudioConverter.h
./System/Library/Frameworks/AudioToolbox.framework/Headers/AudioFile.h
./System/Library/Frameworks/AudioToolbox.framework/Headers/AudioFileStream.h
./System/Library/Frameworks/AudioToolbox.framework/Headers/AudioFormat.h
./System/Library/Frameworks/AudioToolbox.framework/Headers/AudioQueue.h
./System/Library/Frameworks/AudioToolbox.framework/Headers/AudioServices.h
./System/Library/Frameworks/AudioToolbox.framework/Headers/AudioSession.h
./System/Library/Frameworks/AudioToolbox.framework/Headers/AudioToolbox.h
./System/Library/Frameworks/AudioToolbox.framework/Headers/AUGraph.h
./System/Library/Frameworks/AudioToolbox.framework/Headers/ExtendedAudioFile.h
./System/Library/Frameworks/AudioToolbox.framework/Headers/MusicPlayer.h
./System/Library/Frameworks/AudioUnit.framework/Headers/AUComponent.h
./System/Library/Frameworks/AudioUnit.framework/Headers/AudioComponent.h
./System/Library/Frameworks/AudioUnit.framework/Headers/AudioOutputUnit.h
./System/Library/Frameworks/AudioUnit.framework/Headers/AudioUnitProperties.h
./System/Library/Frameworks/AudioUnit.framework/Headers/MusicDevice.h
./System/Library/Frameworks/CoreFoundation.framework/Headers/CFBase.h
./System/Library/Frameworks/CoreFoundation.framework/Headers/CFError.h
./System/Library/Frameworks/CoreFoundation.framework/Headers/CFStream.h
./System/Library/Frameworks/CoreMedia.framework/Headers/CMAudioClock.h
./System/Library/Frameworks/CoreMedia.framework/Headers/CMBase.h
./System/Library/Frameworks/CoreMedia.framework/Headers/CMBlockBuffer.h
./System/Library/Frameworks/CoreMedia.framework/Headers/CMBufferQueue.h
./System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h
./System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h
./System/Library/Frameworks/CoreMedia.framework/Headers/CMSimpleQueue.h
./System/Library/Frameworks/CoreMedia.framework/Headers/CMSync.h
./System/Library/Frameworks/CoreMIDI.framework/Headers/MIDIDriver.h
./System/Library/Frameworks/CoreMIDI.framework/Headers/MIDIServices.h
./System/Library/Frameworks/CoreMIDI.framework/Headers/MIDISetup.h
./System/Library/Frameworks/CoreMIDI.framework/Headers/MIDIThruConnection.h
./System/Library/Frameworks/Foundation.framework/Headers/NSError.h
./System/Library/Frameworks/MediaToolbox.framework/Headers/MTAudioProcessingTap.h
./System/Library/Frameworks/Security.framework/Headers/SecBase.h
./System/Library/Frameworks/Security.framework/Headers/SecIdentity.h
./System/Library/Frameworks/Security.framework/Headers/SecImportExport.h
./System/Library/Frameworks/Security.framework/Headers/SecItem.h
./System/Library/Frameworks/Security.framework/Headers/SecKey.h
./System/Library/Frameworks/Security.framework/Headers/SecTrust.h
./System/Library/Frameworks/Security.framework/Headers/SecureTransport.h
./usr/include/AssertMacros.h
./usr/include/Endian.h
./usr/include/MacTypes.h
【讨论】:
感谢特洛伊木马。这似乎是一个(痛苦的)解决方法。我暂时用这个。很遗憾,Apple 仍然没有在他们的文档中整理出错误代码。 很有趣,我刚刚收到错误 -25243,它没有出现在任何 .h 文件中,通过以下方式验证: find 。 -name *.h | xargs grep 25243 –25243 = errSecNoAccessForItem,在 Mac 头文件/文档中,但不在 iOS 中。 developer.apple.com/library/mac/documentation/security/… 对于安全框架错误,您可以使用security
命令,如下所示:security error -25243
。输出:Error: 0xFFFFFFCE -50 One or more parameters passed to a function were not valid.
我喜欢 Apple 编写文档的方式。我确信他们讨厌开发人员。太明显了。每一份文档都不完整、含糊不清、写得不好。以上是关于iOS:在哪里可以找到 iOS 的 OSStatus 代码的完整列表? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在哪里可以找到 iOS App Store 收据验证的共享密钥?