网络在模拟器上工作不适用于 iPhone 设备

Posted

技术标签:

【中文标题】网络在模拟器上工作不适用于 iPhone 设备【英文标题】:networking works on simulator does not work on iPhone device 【发布时间】:2013-02-11 02:57:22 【问题描述】:

这段代码在模拟器上完美运行,写出文件。

但是,在 iPhone 上,它不会写出文件。

DLog(@"");

timeStart  = [NSDate date];


NSURL *url = [NSURL URLWithString:SAT_URL];
NSURLRequest *request = [NSURLRequest requestWithURL:url];

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:FILE_NAME];
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) 

    DLog(@"updated words to: %@",path);
    //DLog(@"response: %@",responseObject);

    [self processWords];

 failure:^(AFHTTPRequestOperation *operation, NSError *error) 

    // Deal with failure
];

[operation start];

rawWords 和 lines 在设备上都是空的:

NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:FILE_NAME];
NSString *rawWords = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSArray *lines = [rawWords componentsSeparatedByString:@"\n"];

这使用了 AFNetworking 库,我尝试从不同的主机获取文件。

我做错了什么?

【问题讨论】:

设备是否连接到互联网?只是检查。 【参考方案1】:

您不能写入捆绑包(绝对不是在设备上,也许在模拟器中是可能的)。您可以写入一些预定义的目录(缓存、文档)。查看 *** 上的以下帖子:NSSearchPathForDirectoriesInDomains explanation confused

【讨论】:

以上是关于网络在模拟器上工作不适用于 iPhone 设备的主要内容,如果未能解决你的问题,请参考以下文章

写入plist适用于模拟器但不适用于设备[重复]

screenShot代码不适用于ipad,适用于iphone

Android Webview Back按钮适用于模拟器,但不适用于设备

Firebase 存储上传适用于模拟器,但不适用于 iPhone

IOS中的Facebook登录适用于模拟器,但不适用于安装了本机应用程序的设备

iOS 项目适用于 iPhone,但不适用于模拟器