Objective c 如何创建4字节大的NSData?

Objective c 如何创建4字节大的NSData?,objective-c,ios,nsdata,Objective C,Ios,Nsdata,我想让GK会话保持活动状态,每10秒有一次计划的ping再次发生。有人说NSData对象应该有4个字节长 如何创建这样一个4字节的数据对象? 像这样 int number = 1234; NSData *pingData = [NSData dataWithBytes:&number length:4]; 或者有更简单/更准确的方法吗?如果“四字节”是代码含义的核心,那么最好将变量键入uint32\t。该类型被明确定义为四个字节宽,而int通常被假定为四个字节,但实际上并不保证是这样

我想让GK会话保持活动状态,每10秒有一次计划的ping再次发生。有人说NSData对象应该有4个字节长

如何创建这样一个4字节的数据对象? 像这样

int number = 1234;
NSData *pingData = [NSData dataWithBytes:&number length:4];
或者有更简单/更准确的方法吗?

如果“四字节”是代码含义的核心,那么最好将变量键入
uint32\t
。该类型被明确定义为四个字节宽,而
int
通常被假定为四个字节,但实际上并不保证是这样


但是创建数据对象的代码无论哪种方式都是正确的。

这是一个重要的区别。然而,在64位计算时代,我认为将
int
假定为4字节是不正确的。据我所知,
int
是操作系统主要支持的处理器上单个寄存器的大小,因此16位上有2个字节(例如MSDOS,基本上已失效),32位上有4个字节(例如iOS和旧的OS X),64位上有8个字节(例如现代OS X)。这样,
int
可能是目标体系结构最有效使用的数据类型。即使在64位Mac上,int也是4字节。Mac OS X被称为“LP64”系统,这意味着长度和指针是64位的。是的,就像Catfish_-Man所说的,对于Mac或仅限iOS的程序员来说,这与其说是一个实际问题,不如说是一个理论问题。但我仍然认为,最好首先编写正确的代码,而不是依赖于int在代码运行的任何地方都具有一定的宽度。