(PNGが含まれています)NSDataのでNSMutableDataを初期化できません
-
20-09-2019 - |
質問
私のiPhoneアプリにエラーがあります。私が作成し、画像を取得するためにCameraPickerを使用して、私はTweetPhotoに写真を送信します私のMethodeのsendPhoto、にそれを与えます。私はNSDataのでNSMutableDateを初期化するまで、すべてが素晴らしい作品。ここでは、コードは次のとおりです。
- (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-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]];
//(...)
}
(sendImage-Methodeのは HTTPであります://davidjhinson.wordpress.com/2009/06/01/posting-photos-using-objective-c/する)
は、コンソールはまた、この言う:の*によりキャッチされない例外 'NSInvalidArgumentException'、理由にアプリを終了: '* の - [UIImageの長さ]:未認識セレクタインスタンス0x3b28df0に送ら'
あなたの助けをありがとう。たぶんそこに私がコードでちょうど愚かな間違いですが、 - 私はちょうど2 1/2週間のプログラミングを学習するので、怒っているドントしてください。
解決
あなたはこの方法ではなく、NSDataのチャンクにUIImageを渡しているように、
これが鳴ります。あなたは写真を引数にログインしてみてくださいことはできますか?
他のヒント
正確にあなたが取得しているエラーは何ですか?言い換えれば、何があなたが示されてきたライン上の誤りがあると思います?
それがクラッシュした場合は、コンソールに印刷されたエラーは何ですか?
所属していません StackOverflow