Brian F爱
从专注于角图,Web技术以yobet英雄联盟及波特兰的Node.js的Google开发人员专家中学习。
广告 ·ultimatecourses.com.
用终极课程学习角度正确的方式

唯一标识您的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”。同样,我没有明确地设置上面的值,这是正确的方法。

我希望这有助于其他任何可能都以同样的方式绊倒的人。

Brian F爱

嗨,我是布莱恩。我对类型名称,Angular和node.js感兴趣我嫁给了我最好的朋友邦妮,我住在波特兰和我滑雪(很多)。