我有信息,我打算通过PHP脚本在iPhone应用程序和桌面应用程序之间进行同步;有没有一种方法在后台调用脚本将数据发送到在线数据库,然后从脚本中检索数据?将数据发送到Cocoa背景中的PHP脚本
1
A
回答
1
这些人都是相反的**洞。如果你不喜欢他的问题,请关闭。我讨厌这里所有的那些知道所有这些人,他们根本不在意你在问什么......他们只是试图劝阻你,不要去想你所想的那些愚蠢的事情,而且你应该这样做相反......呃,为什么?因为你不知道它是如何做到的?长话短说,有HUDREDS的方法来做到这一点...这是我写/喜欢的一个......但正如我所说,这个问题有点混淆的唯一原因是因为有太多的方法来做到这一点...
#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
0
See the URL Loading System和NSURLConnection。 NSURLConnection链接上的“相关示例代码”可能会有帮助
0
如果将所有函数都包装在一个漂亮的小类中,则可以使用SDK中的方法在单独的线程中调用方法。 该方法被称为 detachNewThreadSelector:toTarget:withObject:
注意,如果你不想做返回的数据进行任何处理,不是你可以忽略这一点,只需使用标准方法URL负载,因为它是异步的,并使得无论如何,在后台连接,但不同的是,它的回调是在主线程(AFAIK)上调用的。通过在单独的线程中执行,一切都将在那里完成,所以UI将是免费的。
还要小心,多线程的世界会变得漫长而崎岖。祝你好运
您是否要求在后台运行iPhone应用程序或在后台运行PHP脚本? – 2009-11-30 11:24:00
Cocoa/iPhone应用程序背景中的PHP脚本。例如:用户填写表单,提交表单,并将提交的数据发布到PHP脚本。然后,脚本将确认发送回数据已提交的应用程序。所有的PHP对用户都是不可见的。 – Kaji 2009-11-30 11:50:49