cai*_*ain 4 uuid nsuserdefaults xamarin.ios ios
我正在考虑使用MonoTouch将我的应用程序从标准iOS Objective C转换为C#.
在我的Objective C代码中,我生成一个唯一标识符并将其保存到NSUserDefaults以验证和检查后续登录.这是我正在使用的方法:
- (NSString *) localUuid {
NSString * ident = [[NSUserDefaults standardUserDefaults] objectForKey:UUID];
if(!ident){
CFUUIDRef uuidRef = CFUUIDCreate(NULL);
CFStringRef uuidStringRef = CFUUIDCreateString(NULL, uuidRef);
CFRelease(uuidRef);
ident = [NSString stringWithString:(__bridge_transfer NSString *)uuidStringRef];
[[NSUserDefaults standardUserDefaults] setObject:ident forKey:UUID];
[[NSUserDefaults standardUserDefaults] synchronize];
}
return ident;
}
Run Code Online (Sandbox Code Playgroud)
我在使用MonoTouch在C#中使用类似的东西时遇到了问题.
我还没有找到Mono可用的CFUUID_ _方法版本.
此外,虽然似乎有一个NSUserDefaults.StandardUserDefaults.SetValueForKey方法,但没有一个简单的GetValueForKey方法.
有没有更多经验的Monotouch知道更好的方法来做到这一点?
pou*_*pou 10
CFUUID没有约束,因为使用.NET更容易System.Guid实现相同的目标.例如
var uuid = Guid.NewGuid ();
string s = uuid.ToString (); // if a string is preferred
Run Code Online (Sandbox Code Playgroud)
此外,虽然似乎有一个NSUserDefaults.StandardUserDefaults.SetValueForKey方法,但没有一个简单的GetValueForKey方法.
有安全的类型方法来做同样的事情,例如:
NSUserDefaults settings = NSUserDefaults.StandardUserDefaults;
settings.SetString (s, "key");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1651 次 |
| 最近记录: |