NSNumber 会自动转换字符串吗?

nev*_*ing 5 cocoa-touch objective-c nsnumber storekit ios

创建 时SKStoreProductViewController,我传递一个带有商店标识符参数的字典。:

@{ SKStoreProductParameterITunesItemIdentifier : @010101010 };
Run Code Online (Sandbox Code Playgroud)

该值应该是NSNumber(如上所示):

与此键关联的值是 NSNumber 的实例,代表您希望商店在呈现视图控制器时显示的项目的 iTunes 标识符。

但当我将值作为字符串传递时,它可以毫无怨言地工作:

@{ SKStoreProductParameterITunesItemIdentifier : @"010101010" };
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?是否NSNumber根据给定的字符串自动创建正确的数字类型?这是发生在StoreKit 中NSNumber还是 StoreKit 正在这样做?

Fog*_*ter 5

其实仔细想想...

最初我认为他们必须先将 转换NSString为 an NSNumber,然后才能做任何他们需要做的事情来获取您正在寻找的信息。

然而转念一想……

我猜想这是在字符串中StoreKit使用value反对。SKStoreProductParameterITunesItemIdentifier在这种情况下,他们会做类似的事情......

NSString *someStringToGetTheResults = [NSString stringWithFormat:@"thisIsThePath...?storeKitID=%@", dictionary[SKStoreProductParameterITunesItemIdentifier]];
Run Code Online (Sandbox Code Playgroud)

无论您传入@12345或 ,这都是一样的@"12345"

可能...

但没有真正的方法可以告诉。