Domanda

c'è un errore nel mio iPhone app. Io uso il CameraPicker di fare e ottenere una foto e poi ho dato al mio Methode sendPhoto, che invierà la foto per TweetPhoto. Tutto funziona alla grande fino a che non inizializzare un NSMutableDate con NSData. Ecco il codice:

- (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];
}

Ecco il 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]];
    //(...)
}

(La sendImage-Methode è da http : //davidjhinson.wordpress.com/2009/06/01/posting-photos-using-objective-c/ )

La console dice anche questo: * Chiusura di applicazione a causa di eccezione non identificata 'NSInvalidArgumentException', la ragione: '* - [lunghezza UIImage]: selettore non riconosciuto inviato ad esempio 0x3b28df0'

Grazie per il vostro aiuto. Forse c'è solo uno stupido errore nel codice da me, ma prega di non essere arrabbiato, perché sto solo l'apprendimento di programmazione per 2 1/2 settimane.

È stato utile?

Soluzione

Sembra che si stia passando un UIImage in questo metodo, non un pezzo NSData. Si può provare ad accedere l'argomento foto?

Altri suggerimenti

Che cosa è esattamente l'errore che stai ricevendo? In altre parole, che cosa ti fa pensare che c'è un errore sulla linea che hai indicato?

Se si blocca, quali sono gli errori stampati su console?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top