Use NSCache instead of NSDictionary