请帮助我解决在 OS X 中枚举钥匙串项的问题。我阅读了有关在我的 iOS 应用程序中枚举所有钥匙串项的主题,但想了解如何编写相同的代码,该代码在主题中使用 Core Foundation 函数编写???我尝试这样做:
CFDictionaryRef query = CFDictionaryCreate ( kCFAllocatorDefault, NULL, NULL, 0, NULL, NULL);
CFTypeRef *result = NULL;
status = SecItemCopyMatching(query, result );
if (status != errSecSuccess)
{
GetLastError(status);
}
Run Code Online (Sandbox Code Playgroud)
但这段代码不起作用!你能帮助我理解我错在哪里吗?函数“SecItemCopyMatching”返回错误:传递给函数的一个或多个参数无效。错误代码:-50。
我尝试将与我的 MAC 连接的所有显示器的屏幕截图显示为一张图片。我知道,如果每个显示器的屏幕截图都保存到不同的图片,我该怎么做,但这不是我想要的。我找到了函数CGGetDisplaysWithRect,但我的解决方案不起作用,因为输出图片是空的。我预计,函数 CGDisplayCreateImageForRect (*displays, rect) 的问题,因为第一个参数必须是 CGDirectDisplayID 类型,而不是 CGDirectDisplayID*。但是我找不到可以用一些 CGDirectDisplayID 对象创建一张图片的函数。
请帮帮我!!!
#include <stdio.h>
#include <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
CGDisplayCount displayCount;
CGDirectDisplayID displays[32];
memset(&displays, 0, 32);
CGImageRef image[32];
CGRect rect = CGRectNull;
//grab the active displays
if (CGGetActiveDisplayList(32, displays, &displayCount) != kCGErrorSuccess)
{
printf("Error occured: %s\n", strerror(errno));
}
//go through the list
for (int i = 0; i < displayCount; i++)
{
if (CGDisplayMirrorsDisplay(displays[i]) != kCGNullDirectDisplay)
{
continue;
}
//return the smallest …Run Code Online (Sandbox Code Playgroud)