Ich versuche, die eindeutige Kennung zu bekommen, aber ich bekomme immer einen Nullwert.UUID gibt null zurück
-3
A
Antwort
1
Sie erhalten es nur von Userdefaults, die nur verwendet wird, um Informationen zu speichern und abzurufen. Es wird nicht Ihre UUID generieren. Also, wenn Sie es noch nie mit der Taste „CDVUUID“ gespeichert haben in der Vergangenheit wird der Code immer gleich Null geben, da es keinen Wert in userdefaults für Schlüssel CDVUUID
zu generieren UUID gespeichert ist -
NSString* app_uuid = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
oder
NSString *UUID = [[NSUUID UUID] UUIDString];
Sie können es in Userdefaults dann speichern und sie dann zu einem späteren Zeitpunkt abgerufen werden, wenn Sie es von userdefaults benötigen.
0
Es sieht so aus, als hätten Sie diesen Code von CDVDevice.m kopiert, aber Sie haben nur einen Teil davon kopiert.
Die gesamte Funktion, die eine UUID und spart schafft, wenn man nicht existiert, ist:
- (NSString*)uniqueAppInstanceIdentifier:(UIDevice*)device
{
NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
static NSString* UUID_KEY = @"CDVUUID";
// Check user defaults first to maintain backwards compaitibility with previous versions
// which didn't user identifierForVendor
NSString* app_uuid = [userDefaults stringForKey:UUID_KEY];
if (app_uuid == nil) {
if ([device respondsToSelector:@selector(identifierForVendor)]) {
app_uuid = [[device identifierForVendor] UUIDString];
} else {
CFUUIDRef uuid = CFUUIDCreate(NULL);
app_uuid = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, uuid);
CFRelease(uuid);
}
[userDefaults setObject:app_uuid forKey:UUID_KEY];
[userDefaults synchronize];
}
return app_uuid;
}
Verwandte Themen
- 1. GattDeviceService.FromIdAsync gibt null zurück
- 2. android device.getUuids gibt null zurück
- 3. System.console() gibt null zurück
- 4. System.Web.Security.FormsAuthentication.Encrypt gibt null zurück
- 5. SharedObject.getLocal() gibt null zurück
- 6. startActionMode gibt null zurück
- 7. Process.Start gibt null zurück
- 8. sessionFactory gibt null zurück
- 9. mapFragment.getMap() gibt null zurück
- 10. getBluetoothLeAdvertiser() gibt null zurück
- 11. App.Config gibt null zurück
- 12. SerialDevice.FromIdAsync() gibt null zurück
- 13. UIImage.animatedImageNamed gibt null zurück
- 14. getStringArrayExtra() gibt null zurück
- 15. TextAsset gibt null zurück
- 16. Assembly.GetType gibt Null zurück
- 17. CloudBlob.DownloadToStream gibt null zurück
- 18. CFBundleDisplayName gibt 'null' zurück
- 19. avformat_alloc_context gibt null zurück
- 20. CMSampleBufferGetImageBuffer gibt null zurück
- 21. ListTweetOnUserTimeline gibt null zurück
- 22. qobject_cast gibt null zurück
- 23. UsbDevice.FromIdAsync gibt null zurück
- 24. UNION gibt Null zurück
- 25. contentResolver gibt null zurück
- 26. DateFormatter gibt null zurück
- 27. getLayoutParams gibt null zurück?
- 28. ConfigurationManager.AppSettings - Gibt Null zurück
- 29. TextBlock.GetBindingExpression gibt NULL zurück
- 30. SqlCommand.ExecuteScalar() gibt Null zurück
Sie erhalten es von userdefaults aber haben Sie jemals dort gespeichert? –
Haben Sie etwas mit dem Schlüssel "CDVUUID" gespeichert? userDefaults generieren UUIDS nicht, also fragen Sie, wie eine UUID erstellt wird? –