2011-03-23 4 views
0

웹 서버에서 json 파일을 받고 있습니다. JSON 파일을 사용하여 배열 및 사전으로 구문 분석하고받은 정보를 사용합니다. 하지만 당시에는 사전을 저장하려고하는데 파일을 쓰지 못했습니다. 내가 저장하려면 다음 코드를 사용하고iphone - NSDictionary를 파일에 쓰는 중 문제가 발생했습니다.

{ 
    author = "<null>"; 
    category =  { 
     "created_at" = "2011-02-06T18:11:39Z"; 
     id = 1; 
     name = animals; 
    }; 
    "created_at" = "<null>"; 
    id = 16; 
    "mobile_user_id" = "<null>"; 
    "rating_count" = "4.33333333333333"; 
    status = 1; 
    text = "A boy at a cinema notices what looks like a bear sitting next to him \"Are you a bear? \"\"Yes \"\"What are you doing at the movies? \"\"Well, I liked the book! \""; 
    title = "Various animal jokes"; 
} 

: 나는 사전에 addJokeToFavorite를 호출하고있어

-(BOOL)savePlistFiles:(int)fileNumber 
{ 
    BOOL success = NO; 
    switch (fileNumber) { 
     case SAVE_FAVORITES_JOKES: 
      success = [self.favoriteJokes writeToFile:self.favSaveFilePath atomically:YES]; 
      break; 
     case SAVE_RATED_JOKES: 
      success = [self.ratedJokes writeToFile:self.ratingSaveFilePath atomically:YES]; 
      break; 
     default: 
      NSLog(@"Improper file to save"); 
      success = NO; 
      break; 
    } 
    return success; 
} 
-(BOOL)addJokeToFavorite:(NSDictionary*)joke 
{ 
    NSLog(@"Joke: %@",joke); 
    BOOL success = NO; 
    [self.favoriteJokes addObject:joke]; 
    for(NSDictionary* dict in self.favoriteJokes) 
     NSLog(@"%@", dict); 
    success = [self savePlistFiles:SAVE_FAVORITES_JOKES]; 
    return success; 
} 

딕셔너리는 다음과 같은 형식을 갖습니다. addJokeToFavorite 메서드에서 self.favoriteJokes는 속성이며 유지됩니다. savePlistFiles 메소드는 항상 success = NO를 반환합니다. 나는 그 파일을 전혀 쓰지 않는 이유를 지적 할 수 없다. 또한 파일을 먼저 작성한 다음 작성하려고했습니다. 그것은 또한 작동하지 않았다. 또한 값이 여전히 출력이없는 키를 제거하려고했습니다.

나는 PLIST 파일을 만들려면 다음 코드를 사용하고 있습니다 :

NSFileManager* fm = [NSFileManager defaultManager]; 
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString* documentsDirectory = [paths objectAtIndex:0]; 
self.favSaveFilePath = [documentsDirectory stringByAppendingPathComponent:@"Favorites.plist"]; 
+0

실제로 NSArray를 plist 파일에 쓰는 것처럼 보입니다. self.favoriteJokes를 어떻게 초기화합니까? – Felix

+0

속성 @property (nonatomic, retain) NSMutableArray * favoriteJokes를 만들었습니다. 그런 다음 favoriteJokes를 합성합니다. 구현 및 viewDidLoad, self.favoriteJokes 사용하고 있습니다 [NSMutableArray 배열]; – Satyam

답변

0

당신은 self.favSaveFilePath 및 self.ratingSaveFilePath을 확인해야합니다.

정보에 대한 더 자세한 정보를 제공해 줄 수 있습니까?

+0

나는 그것을 또한 검사했다. 파일이 생성됩니다. viewDidLoad 자체에서 파일을 만들고 있어요. plist 파일을 만드는 방법에 대한 설명에서 코드를 업데이트했습니다. – Satyam

관련 문제