Error Domain = NSCocoaErrorDomain Code=3840 "操作无法完成。(Cocoa 错误 3840。)
Posted
技术标签:
【中文标题】Error Domain = NSCocoaErrorDomain Code=3840 "操作无法完成。(Cocoa 错误 3840。)【英文标题】:Error Domain = NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.) 【发布时间】:2014-04-18 05:26:57 【问题描述】:我正在从 web url 请求动态 json 字符串。
-(void)getDataFromServer
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.domain.com/json/"]];
[request setHTTPMethod:@"GET"];
[request addValue:@"getValues" forHTTPHeaderField:@"METHOD"];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
-(void)requestReturnedData:(NSData *)data //activated when data is returned
NSDictionary *dictionary = [NSDictionary dictionaryWithJSONData:data];
我得到以下错误。
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)(JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x977a900 NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.
我用json文本文件测试过
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.domain.com/jsonfile.json"]];
完美运行。我该如何克服这个问题。
编辑---
我发现,如果 json 中的行数超过 200,则会发生此错误。否则它运行完美。数据大小是否有问题。
【问题讨论】:
***.com/questions/14171111/… 你的 JSON 是什么样的?您很可能收到一个字符串,或者***对象是一个数组。 @Inertiatic ***对象是一个数组。 【参考方案1】:我遇到了同样的问题,并找到了我的代码的解决方案。当连接返回大数据时,“didReceiveData”方法会调用很多次,并收到大量数据。我们必须将此方法的数据附加到解析器类的 .h 文件中声明的 NSData 引用。并且应该在 NSURLConnection "connectionDidFinishLoading" 的委托方法中调用 "dictionaryWithJSONData" 方法。
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
[self.dataJSON appendData:data];
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
NSDictionary *dictionary = [NSDictionary dictionaryWithJSONData:dataJSON];
这里dataJSON在.h文件中声明并在init方法中分配。
【讨论】:
以上是关于Error Domain = NSCocoaErrorDomain Code=3840 "操作无法完成。(Cocoa 错误 3840。)的主要内容,如果未能解决你的问题,请参考以下文章
Error Domain=HMErrorDomain Code=4 "操作无法完成。(HMErrorDomain error 4.)"
解析大型 XML 文件失败--ERROR:Error Domain=DDXMLErrorDomain Code=1 "(null)"
checkResourceIsReachableAndReturnError 总是返回 Domain=NSCocoaErrorDomain Code=4 "操作无法完成。(Cocoa 错误
iOSError: Error Domain=PBErrorDomain Code=7 "Cannot connect to pasteboard server
AFNetworking 文件下载错误 Error Domain=NSCocoaErrorDomain Code=260