我正在使用此代码列出所有私钥并使用Apple的安全框架API获取有关它们的一些信息:
int main(int argc, const char * argv[]) {
const void *keys[] = { kSecClass, kSecReturnRef, kSecMatchLimit, kSecAttrKeyClass};
const void *values[] = { kSecClassKey, kCFBooleanTrue, kSecMatchLimitAll, kSecAttrKeyClassPrivate};
CFDictionaryRef searchDict = CFDictionaryCreate(
NULL,
keys, values, sizeof(keys) / sizeof(keys[0]),
NULL, NULL
);
checkAlloc(searchDict);
CFArrayRef items;
check(SecItemCopyMatching(searchDict, (CFTypeRef *)&items));
for(int i=0; i<CFArrayGetCount(items); i++) {
SecKeychainItemRef item = (SecKeychainItemRef) CFArrayGetValueAtIndex(items, i);
CFShow((CFTypeRef)item);
SecItemClass cls;
SecKeychainAttributeList attrs;
UInt32 dataLen;
void* data;
check(SecKeychainItemCopyContent(item, &cls, &attrs, &dataLen, &data));
printf("Key: %d\n", (int)dataLen);
check(SecKeychainItemFreeContent(&attrs, data));
}
CFRelease(items);
CFRelease(searchDict);
return …Run Code Online (Sandbox Code Playgroud) 我只是调试了一些客户遇到的错误,现在我偶然发现了一个奇怪的行为:根据charles代理,请求失败("远程服务器在发送响应头之前关闭了连接")但我的成功块被调用了.
这是一个已知的行为/问题吗?
public class Quicks
{
public static void main(String args[])
{ int temp;
int[] list={5,1,7,6,4,0,8,9};
int i;
for(i=0;i<=6;i++)
{
if(list[i]>list[i+1]);
{
temp=list[i+1];
list[i+1]=list[i];
list[i]=temp;
}
}
for(i=0;i<=6;i++)
{
System.out.println(list[i]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出1 7 6 4 0 8 9
我的第一个怀疑是5
为什么7和6没有被交换