J'ai le code suivant (donné ci-dessous) où j'utilise nsurlconnection code> pour connecter et analyser la chaîne de réponse. Mais je reçois l'erreur suivante:
@implementation Websample1ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
dataWebService = [[NSMutableData data] retain];
NSMutableURLRequest *request = [[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://www.googleapis.com/customsearch/v1?key=AIzaSyDzl0Ozijg2C47iYfKgBWWkAbZE_wCJ-2U&cx=017576662512468239146:omuauf_lfve&q=lectures&callback=handleResponse"]]retain];
NSURLConnection *myConnection = [NSURLConnection connectionWithRequest:request delegate:self];
[myConnection start];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
[dataWebService setLength:0];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[dataWebService appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSString *responseString = [[NSString alloc] initWithData:dataWebService encoding:NSUTF8StringEncoding];
NSLog(@"Response: %@",responseString);
[responseString release];
[dataWebService release];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSLog(@"Error during connection: %@", [error description]);
}
//class 2
@implementation WebJson
//parse JSON
- (void)requestCompleted:(ASIHTTPRequest *)request
{
NSString *responseString = [request responseString];
NSDictionary *dictionary = [responseString JSONValue];
NSDictionary *dictionaryReturn = (NSDictionary*) [dictionary objectForKey:@"request"];
NSString *total = (NSString*) [dictionaryReturn objectForKey:@"totalResults"];
NSLog(@"totalResults: %@", total);
NSString *search = (NSString*) [dictionaryReturn objectForKey:@"searchTerms"];
NSLog(@"searchTerms: %@", search);
int count = [[dictionaryReturn objectForKey:@"count"] intValue];
NSLog(@"count: %d", count);
}
6 Réponses :
Les erreurs DYLD sont causées par une bibliothèque manquante ou une mauvaise bibliothèque Vérifiez vos cadres Links forts>, n'hésitez pas à supprimer / recréer les liens, prenez des soins em> de la version iOS que vous prenez vos cadres. (utilisez généralement la liste fournie Xcode, ne parcourez pas les fichiers) em> p>
Dans votre cas, je ne serai pas surpris que la liaison que je suppose devoir être plutôt quelque chose comme: /system/library/frameworks/security.framework code> est une erreur, car elle ne ressemble pas à l'appartenance à IOS SDK, en regardant son chemin. .. p>
/developer/platforms/iphonesimulator/sdks/iphonesIlulator
Ugh. Je frappe ça aussi. s'est avéré que j'avais vérifié accidentellement la case pour copier le cadre à mon Dir local lorsque vous ajoutez le cadre à mon projet. P>
Supprimez le cadre de votre projet. P>
Ajoutez ensuite le cadre en veillant à ne pas copier les fichiers. P>
J'ai la même erreur lorsque j'ai changé le suffixe que mon exécutable utilise lors de la chargement de cadres du suffixe "Non" au suffixe "Déboguer". Je pense que les cadres de débogage ne sont pas tenus à jour par Apple. P>
Vous pourriez avoir un peu de cette façon si vous utilisez «débogage» pour d'autres raisons, puis ajoutez un cadre dont la version de débogage n'est pas à jour. P>
Comme chez Xcode 3, le réglage du suffixe est disponible dans le volet "Général" de la fenêtre "Get Info" de votre exécutable. P>
Cela se produit également lorsque vous référenciez une bibliothèque, une variable ou une méthode qui n'est pas compilée dans le système d'exploitation en cours que vous ciblez. P>
Vérifiez le symbole et voyez s'il est disponible. Par exemple, cflelease (cftyperef cf) code> est disponible dans tous les cadres IOS, mais
cfaTorLease (cftyperef arg) code> est uniquement disponible dans iOS 7.0 (et Mac OSX 10.9) et ci-dessus désigné par
cf_available (10_9, 7_0) code> p>
J'ai eu ce problème aussi et il semble être un bug connu dans le CFNetwork dans iOS 8 SDK (regardez ici: https://devforums.apple.com/message/971238#971238 ). P>
Le travail autour est le suivant: P>
Modifier l'ordre de liaison dans "lien binaire avec des bibliothèques" de votre cible et placez la fondation.framework avant cfnetwork.framework. P>
qui a résolu les problèmes pour moi. P>
Changer votre cible de déploiement en iOS 8.1. P>
Il me semble que vous voudrez peut-être laisser cela comme un commentaire. Sinon, ce serait génial si vous pouvez en parler plus.
Dupliquer? Stackoverflow.com/Questtions/1281261 / ...