【问题标题】:Getting warning Incompatible pointer types assigning to 'NSMutableData' from NSData从 NSData 分配给“NSMutableData”的警告不兼容的指针类型
【发布时间】:2012-05-09 10:16:59
【问题描述】:

我收到警告::在下面的代码中从“NSData”分配给“NSMutableData”的指针类型不兼容

-(void) connectionDidFinishLoading:(NSURLConnection *) connection
{
    NSLog(@"DONE. Received Bytes: %d", [webData length]);
    NSString *theXML = [[[NSString alloc] initWithBytes: [webData mutableBytes] length [webData length] encoding:NSUTF8StringEncoding] autorelease];

    theXML = [theXML stringByReplacingOccurrencesOfString:@"&lt;" withString:@"<"];
    theXML = [theXML stringByReplacingOccurrencesOfString:@"&gt;" withString:@">"];
    NSLog(@"%@",theXML);

    if( xmlParser )
    {
        xmlParser = nil;
        [xmlParser release];
    }

    NSMutableString *str = [[NSMutableString alloc]initWithString:theXML];
    webData = [str dataUsingEncoding:NSUTF16StringEncoding];//WARNING

    xmlParser = [[[NSXMLParser alloc] initWithData:webData] autorelease];
    [xmlParser setDelegate:self];
    [xmlParser setShouldResolveExternalEntities: YES];
    [xmlParser parse];

    [connection release];
}

【问题讨论】:

标签: ios nsxmlparser nsdata


【解决方案1】:

使用

webData = [NSMutableData dataWithData:[str dataUsingEncoding:NSUTF16StringEncoding]];

【讨论】:

    【解决方案2】:

    您不能将 NSData 分配给 NSMutableData。 NSMutableData 包含使它能够变异的逻辑,如果你将它指向一个 NSData 对象,这个逻辑就会消失。您应该做的是使用以下语法附加数据:

    [webData appendData:[str dataUsingEncoding:NSUTF16StringEncoding]];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      • 2023-03-07
      • 2023-04-07
      • 2015-10-10
      相关资源
      最近更新 更多