-3

下面是我的代码,假设我想从网上获取图像并将其保存在我的设备中,但出现我无法解决的错误,请帮助。

for ( int i=1; i<=numberOfSlides; i++) {
    NSString *picURLstring = [NSString stringWithFormat:@"http://example.com/Slide%d.jpg", i] ;
    NSURL *picURL = [NSURL URLWithString:picURLstring] ;
    UIImage *Slide = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:picURL]];

    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
    NSString *docPostion = [path objectAtIndex:0] ;
    docPostion = [docPostion stringByAppendingPathComponent:@"Slide%d.png",i];
}

错误发生在以下行:

docPostion = [docPostion stringByAppendingPathComponent:@"Slide%d.png",i];

我想根据变量i将图像保存到名称中,我保证这段代码在C语言中是正确的,但是现在在objective-c中我不知道为什么我不能这样做。

4

3 回答 3

2

并非所有的 Objective C 方法都将格式字符串作为参数/参数。你需要像这样将你的字符串包裹在一个NSString stringWithFormat:调用中

docPostion = [docPostion stringByAppendingPathComponent:[NSString stringWithFormat:@"Slide%d.png",i]];
于 2013-06-24T10:24:27.627 回答
2

代替

docPostion = [docPostion stringByAppendingPathComponent:@"Slide%d.png",i];

利用

docPostion = [docPostion stringByAppendingPathComponent:[NSString stringWithFormat:@"Slide%d.png",i]];

您不能将格式字符串与任何 NSString 方法一起使用,只能使用某些方法(通常format在其名称中使用单词)。

于 2013-06-24T10:24:55.430 回答
0

方法stringByAppendingPathComponent将一个变量作为参数,在这里您传递 2。(先是逗号,"Slide%d.png"然后i是逗号)。这就是它产生此错误的原因。这是一个很好的描述如何stringByAppendingPathComponent工作。

于 2013-06-24T10:29:38.510 回答