基本的に私はサーバー側から応答を得て、それをローカルのfile.Actuallyに保存しました。サーバー側から応答を取り出し、ドキュメントディレクトリに保存しました。フェッチしようとしていますが、NSStringのみで、 NSDictionary ....これは次のコードですNSDictionaryでローカルJSONファイルの応答にアクセスしてUITableViewで表示する方法は?
- (IBAction)loginButtonPressed:(id)sender
{
NSString *URLString = @"http://localhost/rest/login";
AFHTTPSessionManager *manager =[AFHTTPSessionManager manager];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
NSDictionary *params = @{@"username": userNameTxtField.text, @"password": pwdTextField.text};
NSLog(@"Parameters:\n%@",params);
[manager POST:URLString parameters:params progress:nil success:^(NSURLSessionDataTask *operation, id responseObject)
{
NSLog(@"Successfully Login ....: %@", responseObject);
NSString *documents = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
path = [NSString stringWithFormat:@"%@/sample.json", documents];
NSOutputStream *stream = [[NSOutputStream alloc] initToFileAtPath:path append:YES];
[stream open];
NSError *writeError = nil;
NSInteger bytesWritten = [NSJSONSerialization writeJSONObject:responseObject toStream:stream options:NSJSONWritingPrettyPrinted error:&writeError];
if ((bytesWritten = 0))
{
NSLog(@"Error writing JSON Data");
}
else{
NSLog(@"Sucessfuly saved data...");
}
[stream close];
NSLog(@"path is :%@",path);
} failure:^(NSURLSessionDataTask *operation, NSError *error)
{
NSLog(@"Error: %@", error);
}];
}
- (IBAction)fetch:(id)sender
{
NSError *deserializingError;
NSData *data=[NSData dataWithContentsOfFile:path];
NSString *jsonString = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&deserializingError];
NSMutableDictionary *dict=[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSLog(@"vaues are:%@",dict);
}
応答からデータを取得し、テーブルにそれをアレイと負荷を保存します。 – user3182143
ローカルファイルに格納する代わりに。コアデータ、Sqlite、NSUserDefaultを保存することができます。したがって、アプリケーションのどこからでもアクセスできます。 –
返信ありがとうございますが、私はファイルフォーマットを維持する必要がありますので、実際に私はNSDataのコンテンツを持っていますがバイトフォーマットですので、キーと値のフォーマットとしてそれらを取得したいので、あまりにも多くのファイルを維持する必要があります。 –