Question

il y a une erreur dans mon application iPhone. J'utilise le CameraPicker pour faire et obtenir une image, puis je donne à mon Methode sendPhoto, qui envoie la photo à TweetPhoto. Tout fonctionne très bien jusqu'à ce que je NSMutableDate avec initialiser un NSData. Voici le code:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    [picker dismissModalViewControllerAnimated:YES];
    NSData *imageData = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    [self sendPhoto:(NSString*)@"lola" tweet:(BOOL)TRUE photo:(NSData*)imageData tags:(NSString*)@"" longitude:(float)1024 latitude:(float)512];
}

Voici le sendPhoto-Methode:

- (void)sendPhoto:(NSString*)message tweet:(BOOL)tweet photo:(NSData*)photo tags:(NSString*)tags longitude:(float)longitude latitude:(float)latitude {
    NSString *url;
    if (tweet) {
        url = [NSString stringWithFormat:@"http://www.tweetphoto.com/uploadandpostapiwithkey.php"];
    } else {
        url = [NSString stringWithFormat:@"http://www.tweetphoto.com/uploadapiwithkey.php"];
    }

    NSString * boundary = @"tweetPhotoBoundaryParm";
    NSMutableData *postData = [NSMutableData dataWithCapacity:[photo length] + 1024];
    //!!!Here is the error!!!!                      
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

    NSString * userNameString = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"username\"\r\n\r\n%@", [prefs stringForKey:@"username_preference"]];
    NSString * passwordString = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"password\"\r\n\r\n%@", [prefs stringForKey:@"password_preference"]];
    NSString * apiString = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"api_key\"\r\n\r\n3eceaa7c-6d4d-41ab-be90-2a780e2d1961"];
    NSString * messageString = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"message\"\r\n\r\n%@", message];
    NSString * tagsString = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"tags\"\r\n\r\n%@", tags];
    NSString * latString = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"latitude\"\r\n\r\n%f", latitude];
    NSString * longString = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"longitude\"\r\n\r\n%f", longitude];
    NSString * boundaryString = [NSString stringWithFormat:@"\r\n--%@\r\n", boundary];
    NSString * boundaryStringFinal = [NSString stringWithFormat:@"\r\n--%@--\r\n", boundary];

    [postData appendData:[boundaryString dataUsingEncoding:NSUTF8StringEncoding]];
    [postData appendData:[userNameString dataUsingEncoding:NSUTF8StringEncoding]];
    [postData appendData:[boundaryString dataUsingEncoding:NSUTF8StringEncoding]];
    [postData appendData:[passwordString dataUsingEncoding:NSUTF8StringEncoding]];
    [postData appendData:[boundaryString dataUsingEncoding:NSUTF8StringEncoding]];
    [postData appendData:[apiString dataUsingEncoding:NSUTF8StringEncoding]];
    [postData appendData:[boundaryString dataUsingEncoding:NSUTF8StringEncoding]];
    //(...)
}

(Le sendImage-Methode est par http : //davidjhinson.wordpress.com/2009/06/01/posting-photos-using-objective-c/)

La console dit aussi ceci: * Mettre fin à l'application du fait exception uncaught 'NSInvalidArgumentException', raison: '* - [longueur UIImage]: sélecteur non reconnu envoyé à l'instance 0x3b28df0'

Merci pour votre aide. Peut-être il y a juste une erreur stupide dans le code par moi, mais s'il vous plaît ne soyez pas en colère, parce que je suis tout apprentissage de la programmation pendant 2 semaines 1/2.

Était-ce utile?

La solution

On dirait que vous passez un UIImage dans cette méthode, pas un morceau NSData. Pouvez-vous essayez de vous connecter l'argument photo?

Autres conseils

Quelle est exactement l'erreur que vous obtenez? En d'autres termes, ce qui vous fait penser qu'il ya une erreur sur la ligne que vous avez indiqué?

Si elle tombe en panne, quelles sont les erreurs imprimées à la console?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top