这是我现在硬编码的方式:
(在我的appDelegate中)
- (voID)loadLevels { //setup NSNumber objects to load into sequences NSNumber * rID = [[[NSNumber alloc] initWithInt:0] autorelease]; NSNumber * bID = [[[NSNumber alloc] initWithInt:1] autorelease]; NSNumber * gID = [[[NSNumber alloc] initWithInt:2] autorelease]; NSNumber * yID = [[[NSNumber alloc] initWithInt:3] autorelease]; NSNumber * rbID = [[[NSNumber alloc] initWithInt:4] autorelease]; NSNumber * rgID = [[[NSNumber alloc] initWithInt:5] autorelease]; NSNumber * ryID = [[[NSNumber alloc] initWithInt:6] autorelease]; NSNumber * bgID = [[[NSNumber alloc] initWithInt:7] autorelease]; NSNumber * byID = [[[NSNumber alloc] initWithInt:8] autorelease]; NSNumber * gyID = [[[NSNumber alloc] initWithInt:9] autorelease]; //Level One's Sequence NSMutableArray * aSequence = [[[NSMutableArray alloc] initWithCapacity:1] autorelease]; [aSequence addobject: rID]; [aSequence addobject: bID]; [aSequence addobject: gID]; [aSequence addobject: yID]; [aSequence addobject: rbID]; [aSequence addobject: rgID]; [aSequence addobject: ryID]; [aSequence addobject: bgID]; [aSequence addobject: byID]; [aSequence addobject: gyID]; // Load level One _levels = [[[NSMutableArray alloc] init] autorelease]; Level *level1 = [[[Level alloc] initWithLevelNum:1 levelSpeed:1.0 levelSequence:aSequence] autorelease]; [_levels addobject:level1]; //do the same thing for subsequent levels//}
(这就是我实现Level Level的方法)
#import "Level.h"@implementation Level@synthesize levelNum = _levelNum;@synthesize levelSpeed = _levelSpeed;@synthesize levelSequence = _levelSequence;- (ID)initWithLevelNum:(int)levelNum levelSpeed:(float)levelSpeed levelSequence:(NSMutableArray *)levelSequence { if ((self = [super init])) { self.levelNum = levelNum; self.levelSpeed = levelSpeed; self.levelSequence = [[[NSMutableArray alloc] initWithArray:levelSequence] autorelease]; } return self;}- (voID)dealloc { [_levelSequence release]; _levelSequence = nil; [super dealloc];}@end
我只是没有得到如何设置一个pList来存储我的数据以匹配我的模型.请问有人可以给我一些建议吗?
加成:
(这是我认为我需要设置pList的方式 – 数据模型只是初始化我的级别的三个变量(上图).如果你查看我当前的pList,可能会更清楚它是如何设置的,但是每个级别都包含在内of:级别编号,级别速度和表示该级别所需序列的数字数组.)
现在,如果我确实有正确的设置,我如何将值加载到我的程序中?
解决方法 >将pList文件添加为项目中的资源文件.说,它的名字是config.pList>获取资源文件的路径. (但是,请注意[NSBundle mainBundle],因为它不会在单元测试中返回单元测试包.)
Nsstring *pListPath = [[NSBundle mainBundle] pathForResource:@"config" ofType:@"pList"];
>您的根对象是一个级别数组.将其加载到NSArray中.
// this is autoreleased. you can retain it if neededNSArray *levelArray = [NSArray arrayWithContentsOffile:pListPath];
>现在你有了一系列关卡.每个级别都是字典.加载级别i(从0开始计数).
NSDictionary *level = [levelArray objectAtIndex:i];
>现在,您可以使用objectForKey方法从级别字典中获取对象.例如,要获取序列数组:
NSArray *seq = [level objectForKey:@"levelSequence"];
>您可以循环使用levelArray为您的所有级别分配,初始化和添加到级别数组.
希望能帮助到你.请注意,我没有编译代码,因此可能存在一些拼写错误.
总结以上是内存溢出为你收集整理的ios – 设置一个plist来存储iPhone游戏的应用程序数据(而不是设置)全部内容,希望文章能够帮你解决ios – 设置一个plist来存储iPhone游戏的应用程序数据(而不是设置)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)