[英]Array and dictionary compatibility
在1.0版中,我使用NSMutableArray,在其中存儲NSNumbers之類的內容
NSMutableArray *myArray;
for(int i= 0 ; i < 10 ; i++)
[myArray addObject:[NSNumber numberWithInt:i]];
用於存儲我的gameStatus。
在下一個版本(1.1)中,我想更新myArray like(通過在其中存儲字典)...
NSMutableArray *myArray;
for(int i= 0 ; i < 10 ; i++)
{
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:number forKey:@"index"];
[dict setValue:[NSNumber numberWithBool:NO] forKey:@"isValid"];
[myArray addObject:dict];
[dict release];
}
我的問題是如何為以前的版本1.0提供兼容性。
提前致謝。
更新:我支持如下所示的1.1版,可以嗎。
//Version 1.1 support
//Read myArray
if( [myArray count] > 0)
{
if( ![[myArray objectAtIndex:0] isKindOfClass:[NSMutableDictionary class]])
{
for( NSNumber *number in myArray)
{
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:number forKey:@"index"];
[dict setValue:[NSNumber numberWithBool:NO] forKey:@"isValid"];
[dict release];
}
}
}
我認為您的意思是您正在某個時候將它們保存到磁盤,並且想要在升級后處理它們。 有很多方法可以解決此問題,但是對於此特定情況,我將建議以下方法:
當您轉到v1.2並再次更改數據時,這可以很好地擴展。 您將需要永遠或多或少地保持“如何閱讀v1.0”代碼(或者至少直到完全放棄從1.0升級的支持),但是在任何情況下都是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.