Tag: 长整数

在Realm中存储“无符号长整数”的最佳实践scheme

我必须在像14000822124935161134这样的Realm存储中存储大量数据。 目前我通过将它们的types更改为string来存储它们,如下所示,然后保存: NSMutableDictionary *itemInsert = [item mutableCopy]; if([item valueForKey:@"timestamp"]) { unsigned long long timestamp = [[item valueForKey:@"timestamp"] unsignedLongLongValue]; [itemInsert setObject:[NSString stringWithFormat:@"%llu", timestamp] forKey:@"timestamp"]; } RLMRealm *realm = [RLMRealm defaultRealm]; [realm beginWriteTransaction]; [RMember createOrUpdateInRealm:realm withValue:itemInsert]; [realm commitWriteTransaction]; 而我的RLMObject的timestamp属性定义如下: @interface RMember : RLMObject … @property (nullable) NSString *timestamp; … @end Realm这种types的数据还有什么合适的types而不是string ?

iOS中的double / float align和long long / int align有什么区别

在iOS中用C / C ++编写代码,在下面的代码中: double value = *((double(*)p) ; (p指向足够长的内存) 当p的地址alignment到8字节时,就可以了; 当p的地址不alignment到8字节时,代码崩溃; 浮动types的问题是一样的翻倍 当我将代码更改为: double value = *((long long*)p) ; 代码是好的,即使p不是alignment到8个字节。 所以我有三个问题: 如何赋值p指向double / float的值? 为什么长长的*即使p不是8字节alignment也可以? 这个代码在X86窗口/ linux中可以,为什么?