3
我似乎无法从钥匙串中获取价值,因为它始终返回ItemNotFound。我正在使用的代码如下:MonoTouch无法获取现有钥匙扣项目的价值
private static Guid GetID()
{
Guid returnGuid = Guid.Empty;
SecStatusCode code;
SecRecord queryRec = new SecRecord (SecKind.GenericPassword) { Service = KEYCHAIN_SERVICE, Label = KEYCHAIN_SERVICE, Account = KEYCHAIN_ACCOUNT };
queryRec = SecKeyChain.QueryAsRecord (queryRec, out code);
if (code == SecStatusCode.Success && queryRec != null && queryRec.Generic != null)
{
returnGuid = new Guid(NSString.FromData(queryRec.Generic, NSStringEncoding.UTF8));
}
return returnGuid;
}
当我尝试设置与下面的代码返回DuplicateItem值:
private static SecStatusCode SetID (Guid setID)
{
SecStatusCode code = SecKeyChain.Add (new SecRecord (SecKind.GenericPassword) {
Service = KEYCHAIN_SERVICE,
Label = KEYCHAIN_SERVICE,
Account = KEYCHAIN_ACCOUNT,
Generic = NSData.FromString(Convert.ToString(setID), NSStringEncoding.UTF8),
Accessible = SecAccessible.Always
});
return code;
}
任何帮助将是巨大的!
这真的很奇怪,我试过删除重复的密钥代码,它带着“ItemNotFound”返回,所以我不能删除它并且无法读取它。我会尝试改变我的常量,因此它寻找一个新的钥匙串,看看它修复。一旦我测试过,会更新。 – 2012-02-28 14:11:25
奇怪的是它必须有一个错误的keychain,或者如果我改变我的常量,它现在工作正常,令人沮丧。我已经标记了你的正确,谢谢你的帮助。 – 2012-02-28 14:14:48