سؤال

هناك خطأ في تطبيق iPhone الخاص بي. أستخدم CamerApicker لصنع صورة والحصول عليها ، ثم أعطيها إلى Methode Sendphoto ، والتي سترسل الصورة إلى Tweetphoto. كل شيء يعمل بشكل رائع حتى أقوم بتهيئة NSMutabledate مع NSDATA. هنا هو الرمز:

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

هنا هو ميثود Sendphoto:

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

(Sendimage-methode هو بواسطة http://davidjhinson.wordpress.com/2009/06/01/posting-photos-using-objective-c/)

تقول وحدة التحكم هذا أيضًا: * إنهاء التطبيق بسبب الاستثناء غير المطلوب "nsinvalidargumentexception" ، السبب: '* -[طول UIIMAGE]: تم إرسال محدد غير معترف به إلى مثيل 0x3B28DF0 '

شكرا لمساعدتك. ربما يكون هناك مجرد خطأ غبي في الكود من قبلي ، ولكن من فضلك لا أغضب ، لأنني فقط أتعلم البرمجة لمدة أسبوعين ونصف.

هل كانت مفيدة؟

المحلول

يبدو أنك تمرر UIImage في هذه الطريقة ، وليس قطعة NSDATA. هل يمكنك محاولة تسجيل حجة الصورة؟

نصائح أخرى

ما هو بالضبط الخطأ الذي تحصل عليه؟ بمعنى آخر ، ما الذي يجعلك تعتقد أن هناك خطأ في الخط الذي أشرت إليه؟

إذا تعطلت ، فما هي الأخطاء المطبوعة على وحدة التحكم؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top