Отправка данных в PHP-скрипты в фоновом режиме из Какао - PullRequest
1 голос
/ 30 ноября 2009

У меня есть информация, которую я планирую синхронизировать между приложением iPhone и настольным приложением через скрипт PHP; Есть ли способ вызова сценария в фоновом режиме для отправки данных в онлайн-базу данных и последующего извлечения данных из сценария?

Ответы [ 4 ]

1 голос
/ 04 апреля 2012

Эти люди все напротив ** дыры. Если вам не нравится его вопрос, заткнись. Я ненавижу всех всезнайок-всезнайок, которые буквально не заботятся о том, что ВЫ спрашиваете ... они просто попытаются отговорить вас от того, что вы думали глупо, и что вы должны сделать это вместо этого .. ну почему? потому что вы не знаете, как это сделать? Короче говоря, есть множество способов сделать это ... вот один, который я написал / хотел ... но, как я сказал, единственная причина, по которой эта проблема немного обескураживающая, заключается в том, что существует СЛИШКОМ много способов сделать это ...

#import "NSData+Base64.h"  //i'm sending an image, so i base64 encode it.

- (NSArray *)makeObjectFromJSONviaPHPwithThis:(NSData *)data
{
   NSTask *phpTask  = [NSTask new];   
   [php setStandardOutput:pipe]; [php setLaunchPath:@"/usr/bin/php"];
   [php setArguments:[NSArray arrayWithObjects:
        @"-f",  //runs your bundled script via cli
        [[[NSBundle mainBundle] resourcePath] 
             stringByAppendingPathComponent:@"bundledScript.php"],
        [data base64EncodedString], nil]]; 
   NSPipe *pipe = [NSPipe new];
   NSFileHandle *handle = [pipe fileHandleForReading];
   [php launch];
   NSString *results = [[NSString alloc] initWithData:
        [handle readDataToEndOfFile] encoding:NSASCIIStringEncoding]; 
    //"results" has your response from php….. I sent them back as * seperated string.
    //Now i split the strings and shove them into an array!
    return NSArray *parsedResults = [results componentsSeparatedByString:@"*"];

}

1 голос
/ 30 ноября 2009

Вы можете просто сделать его веб-приложением вместо собственного приложения

0 голосов
/ 01 декабря 2009

Если вы заключите все свои функции в небольшой класс, вы можете использовать метод в SDK для вызова метода в отдельном потоке. метод называется detachNewThreadSelector: toTarget: withObject:

Обратите внимание, что если вы не хотите выполнять какую-либо обработку возвращаемых данных, вы можете игнорировать это и просто использовать стандартный подход к загрузке URL-адреса, поскольку он асинхронный и в любом случае делает соединение в фоновом режиме Разница в том, что его обратный вызов вызывается в основном потоке (AFAIK). При выполнении в отдельном потоке все будет сделано там, поэтому пользовательский интерфейс будет бесплатным.

Также будьте осторожны, мир многопоточности может быть длинным и каменистым. Удачи

0 голосов
/ 30 ноября 2009

См. Систему загрузки URL и NSURLConnection . «Связанный пример кода» по ссылке NSURLConnection может быть полезен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...