Я знаю, что общие вопросы не разрешены на этом сайте - но у меня есть проблема, которая на самом деле не связана с моим кодом. Это одна из тех компьютерных проблем, когда мой код работал минуту, а не работал дальше - и я ничего не менял. Я собираюсь опубликовать то, что, по моему мнению, является соответствующим кодом, но я не получаю никаких сообщений об ошибках, либо в моей консоли отладки в XCode
, либо на стороне сервера в журналах ошибок apache2
.AFNetworking блок кода не выполняется
Возможно соответствующий код:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImageWriteToSavedPhotosAlbum(info[UIImagePickerControllerOriginalImage], nil, nil, nil);
NSString * uploadURL = @"http://192.168.1.4/upload.php";
NSLog(@"uploadImageURL: %@", uploadURL);
NSData *imageData = UIImageJPEGRepresentation(info[UIImagePickerControllerOriginalImage], 0.5);
NSString *queryStringss = [NSString stringWithFormat:@"%@",uploadURL];
queryStringss = [queryStringss stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
//manager.responseSerializer.acceptableContentTypes = nil;
manager.responseSerializer=[AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/plain"];
NSUserDefaults *userdefaults = [NSUserDefaults standardUserDefaults];
NSString *usernameEncoded = [[userdefaults objectForKey:@"pfuser"]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSDictionary *params = @{@"username": usernameEncoded, @"count": [userdefaults valueForKey:@"count"]};
[manager POST:queryStringss parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:imageData name:@"file" fileName:@"file.jpeg" mimeType:@"image/jpeg"];
}
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject);
NSInteger count = [userdefaults integerForKey:@"count"];
NSNumber *stored = [[NSNumber alloc] initWithInt:count];
count++;
[userdefaults setInteger:count forKey:@"count"];
GMSMarker *marker3 = [[GMSMarker alloc] init];
marker3.position = mapView_.myLocation.coordinate;
marker3.title = [userdefaults objectForKey:@"pfuser"];
marker3.map = mapView_;
PFGeoPoint *point = [PFGeoPoint geoPointWithLatitude:mapView_.myLocation.coordinate.latitude longitude:mapView_.myLocation.coordinate.longitude];
PFObject *pointstore = [PFObject objectWithClassName:@"MapPoints"];
pointstore[@"title"] = [userdefaults objectForKey:@"pfuser"];
pointstore[@"location"] = point;
pointstore[@"count"] = stored;
[pointstore saveEventually:^(BOOL succeeded, NSError *error) {
if (error) {
NSLog(@"Error");
}
else {
dispatch_async(dispatch_get_main_queue(), ^(void){
mapView_.settings.myLocationButton = YES;
});
}
}];
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@ ***** %@", operation.responseString, error);
}];
[picker dismissViewControllerAnimated:YES completion:NULL];
}
Выше код, который должен выполняться. Кажется, что все выполнено до [manager POST:queryStringss parameters:params...
Я не вижу сообщений об успешном завершении или сбоях NSLog
, он просто выходит из строя ... приложение не разбивается, хотя ... приложение продолжает работать нормально.
Любая помощь была бы очень признательна сегодня утром (я бы хотел работать с ней с кем-то, кто знает, что они делают, в чате или что-то в этом роде). Заранее спасибо!
UPDATE
PHP код на стороне сервера:
<?php
header("Content-Type: application/json");
$username = $_POST['username'];
$count = $_POST['count'];
$base64string = base64_encode(file_get_contents("images/".$username."/".$count."/".$username."file".$count.".jpeg"));
echo json_encode(array("image" => $base64string));
?>
UPDATE
Это где я сейчас объявляя manager
:
#import "ViewController.h"
#import "SignUpController.h"
#import <Parse/Parse.h>
#import "AFHTTPRequestOperation.h"
#import "AFHTTPRequestOperationManager.h"
@import GoogleMaps;
typedef void (^CompletionHandlerType)();
@interface ViewController()
@end
@implementation ViewController {
GMSMapView *mapView_;
BOOL firstLocationUpdate_;
CLLocationManager *locationManager;
UIImageView *image;
UIButton *respondButton;
AFHTTPRequestOperationManager *manager;
}
...
UPDATE
После некоторой замечательной помощи TheEye - мы выяснили, с почтальоном (расширение хром), что по какой-то причине приложение просто не находит страницу ... и я получаю ответ 404 (от почтальона). Я до сих пор не понял, почему это происходит, больше помощи будет очень благодарна ... но я не могу сразу ответить, поскольку я устал.
Вы не можете пинговать людей, которые не ответили/не сделали комментарий к вашему вопросу. - И это, похоже, не очень-то связано с php? – Epodax
Не могли бы вы попытаться написать ? [Сборщик увольненияПросмотрСообщения: ДА завершение: NULL]; сперва. –
Менеджер должен быть выделен вне вашего метода делегата в качестве ivar (или, возможно, даже независимо как singleton). В вашем случае оно освобождается до того, как запрос будет полностью обработан. –