2012-05-03 2 views
0

Я создал класс объектов, который я использую для создания своего pList, но у меня есть некоторые проблемы с ним. Я использую шаблон модели singleton для класса, поэтому мне нужно иметь дело только с одним экземпляром его в любой момент времени ...пытается создать pList, однако его не создается

по какой-то странной причине он прекратил работать должным образом и для меня жизни не могу почему, я woundering, если что-то делать с ним быть в одноплодном шаблоне дизайна ..

#pragma mark Singleton Methods 
+ (id)sharedManager { 
    @synchronized(self) { 
     if (sharedMyManager == nil) 
      sharedMyManager = [[self alloc] init]; 
    } 
    return sharedMyManager; 
} 
- (id)init { 
    if (self = [super init]) { 

     // get paths from root direcory (where we will store and fine our plist in the future) 
     NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); 
     // get documents path 
     NSString *documentsPath = [paths objectAtIndex:0]; 
     // get the path to our plist file 
     NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"EngineProperties.plist"]; 

     NSLog(@"pList path = %@", plistPath); 

     // check to see if .plist exists in documents 
     if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath]) 
     { 
      // if not in documents, get property list from main bundle 
      plistPath = [[NSBundle mainBundle] pathForResource:@"EngineProperties" ofType:@"plist"]; 

     } 

     // read property list into memory as an NSData object 
     NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath]; 
     NSString *errorDesc = nil; 
     NSPropertyListFormat format; 
     // convert static plist into dictionary object (this is where any saved values get put into 
     savedEnginePropertiesDict = (NSMutableDictionary *)[NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&errorDesc]; 

     //Load all current values of the property list thats been put into savedEnginePropertiesDict into their variables 
      if (savedEnginePropertiesDict && [savedEnginePropertiesDict count]){ 
       // assign values 
       self.sig = [savedEnginePropertiesDict objectForKey:@"Signature"]; 
       self.ver = [savedEnginePropertiesDict objectForKey:@"Version"]; 
       self.num = [savedEnginePropertiesDict objectForKey:@"Number"]; 
       self.dataV = [savedEnginePropertiesDict objectForKey:@"Data"]; 
       self.cache = [savedEnginePropertiesDict objectForKey:@"Cache"]; 

     } 
    } 
    return self; 
} 

Это должен создать каталог, в котором PLIST должен находиться, а затем, если его там читать, иначе создание это ... но это не делает ничего из этого. И я нахожусь в полной утрате, чтобы понять, почему он не работает.

ответ

1

Ваша установка значений, но не запись в файл.

[savedEnginePropertiesDict writeToFile: plistPath atomically: YES]; 
+0

блин, это не похоже на работу либо ... Я даже пытался удалить приложение из тренажера и его восстановления, так что сохраняется в новый пакет, но это не помогло. –

+0

работал !!! Я использовал его не в том месте .. не обращал внимания :( –

Смежные вопросы