2013-04-18 5 views
1
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    NSURL *site_url = [NSURL URLWithString:[NSString stringWithFormat:@"%@/json/data/post?sid=%@", SECURE, PASSCODE]]; 

    NSData *jsonData = [NSData dataWithContentsOfURL:site_url]; 
    NSError *error = nil; 
    NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; 

    self.items = dataDictionary; 


} 

J'essaye d'analyser des données de json. Cela fonctionne très bien avec les données du serveur live. Cependant, quand je change le lien à http://localhost:8090. Ça arrête de fonctionner.Comment utiliser les données json de localhost dans objectif-c?

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil' 

Je peux y accéder à partir des données du navigateur Web. Est-ce que quelqu'un sait pourquoi est-ce?

+0

votre jsonData est nul, peut publier un NSLog de votre jsonData – CarlJ

+0

NSLog juste afficher jsonData: (null) – tipsywacky

+0

Parlons-nous du simulateur ou un périphérique réel? –

Répondre

1

Fonctionne-t-il sur un émulateur et non sur un périphérique réel?

Vous ne devez jamais utiliser localhost lors du développement d'applications, utilisez plutôt l'adresse IP locale du serveur. Localhost est la machine qui appelle le serveur. Lorsque vous essayez sur l'émulateur et que vous avez le serveur sur la même machine, cela fonctionne parce qu'ils sont identiques. Mais lorsque vous essayez sur un périphérique réel, localhost est le périphérique et le périphérique n'a pas de serveur installé, il échouera donc. BTW, pour tester sur un périphérique réel, il doit être connecté au même réseau.

+0

J'ai été assez direct pour le comprendre. Merci beaucoup, vous avez raison à ce sujet. – tipsywacky

1

Qu'est-ce que vous avez besoin ici est de mettre en œuvre le NSURLConnection et recevoir des données de celui-ci

Vérifiez cette

NSURL *site_url = [NSURL URLWithString:[NSString stringWithFormat:@"%@/json/data/post?sid=%@", SECURE, PASSCODE]]; 
NSURLRequest *req = [NSURLRequest requestWithURL:site_url]; 
NSURLConnection *con = [[NSURLConnection alloc] initWithRequest:req delegate:self]; 
[con start]; 

et des délégués obtiennent la réponse

ce document peut vous aider beaucoup dans ce

Questions connexes