唯一标识您的iOS应用程序用户
在iOS 5苹果中弃用了[Uidevice独特identier]
,返回UDID(唯一设备标识符)。
这个40个字符的十六进制是一个唯一的设备ID,由Apple分配给每个设备。这是识别每个唯一设备或应用程序用户的重要方法,并且通常在将应用程序持续到远程服务器时使用时使用。那么,这些日子要做什么是开发人员?
这个问题最常见的方法是创建自己的唯一标识符并将其存储在nsuserdefaults.
首选项文件。我以前写过nsuserdefaults.
以及注册用户偏好值的默认值的能力。
该registerdefaults:
方法实际上没有设置偏好的值。它简单地说:如果您调用ObjectForKey以获取特定首选项,并且尚未明确地设置setObject:
然后返回此默认值“。我赶上了这一点registerdefaults:
实际设置并存储首选项(如果尚未设置/存储)。不是这种情况。该registerdefaults:
方法不会覆盖已经存储的首选项,但它将“覆盖”先前设置的默认首选项。
如果要在其首选项中为用户存储唯一标识符,则需要显式检查是否存在并适当地设置。
nsstring.*sentsinguuid.=[默认为ObjectForKey.:@“uuid”];如果(sentsinguuid.==.零){cfuuidref uuidobject.=cfuuidcreate.(kcfallocatordfault.);nsstring.*UUIDSTR.=(__bridge_transfer nsstring.*)cfuuidcreatestring.(kcfallocatordfault.那UUIDObject.);cfreelease.(UUIDObject.);[默认值setObject.:UUIDSTR Forkey.:@“uuid”];}nslog.(@“uuid:%@”那[默认为ObjectForKey.:@“uuid”]);
在这里,我们正在获得“uuid”偏好的值。我们检查返回的值是否是零
。如果它是nil,那么我们以前从未创建过,所以我们将创建一个新的UUID并存储在其中nsuserdefaults.
文件。
我以前陷入了困境,因为我正在使用registerdefaults:
并在首次启动申请后,期待价值粘。这并非如此,因为每次都会召回一个新的UUIDObjectforkey:@“uuid”
。同样,我没有明确地设置上面的值,这是正确的方法。
我希望这有助于其他任何可能都以同样的方式绊倒的人。