可以在iPhone上使用NSUserDefaults保存整数数组吗? [英] Possible to save an integer array using NSUserDefaults on iPhone?

查看:124
本文介绍了可以在iPhone上使用NSUserDefaults保存整数数组吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以使用NSUserDefaults在iPhone上保存整数数组?我有一个在我的.h文件中声明的数组: int playfield [9] [11] 从一个文件填充整数,并确定游戏场的布局。我想要能够有几个保存位置,用户可以保存他们的游戏。如果我这样做:

  NSUserDefaults * prefs = [NSUserDefaults standardUserDefaults]; 
[prefs setObject:playfield forKey:@slot1Save];

我得到一个指针错误。



提前感谢!

如果可以保存整数数组,



ie(w / o错误处理)可以使用NSData包装来保存和检索数组。



保存

  NSData * data = [NSData dataWithBytes: playfield length:sizeof(playfield)]; 
[prefs setObject:data forKey:@slot1Save];

载入

  NSData * data = [prefs objectForKey:@slot1Save]; 
memcpy(& playfield,data.bytes,data.length);


Is it possible to save an integer array using NSUserDefaults on the iPhone? I have an array declared in my .h file as: int playfield[9][11] that gets filled with integers from a file and determines the layout of a game playfield. I want to be able to have several save slots where users can save their games. If I do:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject: playfield forKey: @"slot1Save"];

I get a pointer error. If it's possible to save an integer array, what's the best way to do so and then retrieve it later?

Thanks in advance!

解决方案

You can save and retrieve the array with a NSData wrapper

ie (w/o error handling)

Save

NSData *data = [NSData dataWithBytes:&playfield length:sizeof(playfield)];
[prefs setObject:data forKey:@"slot1Save"];

Load

NSData *data = [prefs objectForKey:@"slot1Save"];
memcpy(&playfield, data.bytes, data.length);

这篇关于可以在iPhone上使用NSUserDefaults保存整数数组吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆