2013-03-16 55 views
0

感谢您回复我的问题。我有信心,我会得到一些有价值的反馈并回复我的查询。请找到下面的代码。这是方法,在服务器中保存的数据,数据未保存在服务器

-(NSMutableString *) saveChanges 
{ 
    NSMutableString *changes = [[NSMutableString alloc] init]; 
    NSString *completeXml = [[NSString alloc]init]; 

    for (NSString *key in objectToModify) 
    { 
     BaseModel *orig = [savedOriginalObject objectForKey:key]; 
     BaseModel *new = [objectToModify objectForKey:key]; 

     BaseModel *nested = Nil; 

     // BaseModel was added 
     if (orig == nil) 
     { 
      nested = [ModelReferences referenceNested:new]; 
      nested.EntityState = [[EntityState alloc] initWithIntValue:Added]; 
      NSMutableString *newXml = [self createObjectToXML:nested]; 
      completeXml = [completeXml stringByAppendingString:newXml]; 
     } 

     // BaseModel might be modified 
     else { 
       BaseModel *newNested = [ModelReferences referenceNested:new]; 
       BaseModel *origNested = [ModelReferences referenceNested:orig]; 

       NSMutableString *newXml = [self createObjectToXML:newNested]; 
       NSMutableString *origXml = [self createObjectToXML:origNested]; 

       completeXml = [completeXml stringByAppendingString:newXml]; 

       if (![newXml isEqualToString:origXml]) 
       { 
        nested = newNested; 
        nested.EntityState = [[EntityState alloc] initWithIntValue:Modified]; 
       } 

      } 

     if (nested != Nil) 
      [changes appendString:[self createObjectToXML:nested]]; 
    } 

    //refreshes both dictionaries (objectToModify and savedOriginalObject) 
    [self refreshSavedOriginalObject:completeXml]; 


    if ([changes length] > 0) 
     return changes; 
    else 
     return Nil; 
} 

当过我做任何改变其得到保存,但是当我想添加一个新的数据或对象的服务器不节能。例如,我想添加一个对象在NSMutableDictionary,添加它没有得到保存后。请让我知道,如果我必须提供更多关于我的编码的信息。

+0

解决方法是..通过生成用于给定基本模型中的UUID,一旦产生UUID,示范基地循环会考虑它作为一个没有原稿,并使其作为一个新的UUID,并创建一个位置..因此,具有新UUID的基本模型将被发送到服务器并同时保存... – 2013-04-08 19:12:27

回答

0

解决方法是:通过为给定的基础模型生成UUID,一旦生成UUID,基础模型循环就会将其视为非原型,并将其作为新的UUID并创建一个位置。具有新UUID的Base模型将被发送到服务器并同时保存。