- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- (void)viewDidLoad
{
[super viewDidLoad];
[self performSegueWithIdentifier:@"manWomanView" sender:self];
return;
//40 строк кода...
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
// 5 строк формируем реквест
NSData *responseData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:nil error:&err];
if (!responseData) {
NSLog(@"Connection Error: %@", [err localizedDescription]);
}
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"Response: %@", responseString);
NSString *isSucces = [AYDataFetcher isSucces:responseString];
if ([isSucces isEqualToString:@"success"]) {
NSLog(@"Signup Succes");
// Проверяем и записываем оплату
NSNumber *isPlat = [AYDataFetcher isPlat:responseString];
//NSLog(@"%@", isPlat);
NSLog(@"%@", [isPlat boolValue]?@"Paid account":@"No paid account");
[[NSUserDefaults standardUserDefaults] setBool:[isPlat boolValue] forKey:PLAT];
[[NSUserDefaults standardUserDefaults] synchronize];
if(FALSE) // if([[MKStoreManager sharedManager] isSubscriptionActive:kMyFeatureIdentifier])
{
// 80 строк кода
} else {
if (FALSE) {
//50 строк кода......
Клиент обратился - Приложение сделано фрилансером по имени Андрей Андреев. При переходе с одного таба на другой приложение подвисало на 5-10 секунд. Смотрим код, радуемся - все запросы к апи шлются через NSURLConnection sendSynchronousRequest, в коде куча блоков вроде if(FALSE). И это уже в релизе.
>Проверяем и записываем оплату
Фансервис?
Королева воинов?
> ...
> NSData *responseData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:nil error:&err];
Я аж чаем подавился. Так даже наш местный герой не делал.
А я знаю.
В моем случае, человек просто не знал, как значение из функции вернуть. Для него функции были вновинку.
Он это делал в loadView. Не прямо, конечно - из loadView у менеджера сущностей был дернут runEntities, тот стучался в команду загрузки, а та делала synchronousRequest.
Так как у нас интернет быстрый, а модуль этот нафиг никому не нужен, то на проблему долго не обращали внимания.
BDSM+ эксгибиционизм.
В последних андроидах таких индусов наказали жестоко и надежно. При попытке сделать что-то связанное с сокетами (коннект, чтение, разрешение DNS) в главном треде андроид тупо вбрасывает NetworkInMainThreadError (не помню точного названия).
Видимо фразы "Андроид тормозная херня у которой постоянно зависает интерфейс" их вконец достали.
А как можно попасть на исполнение 40 строк кода, если только что был сделан ретурн?