下面是我的代码,支持我想从网上获取图像并将其保存在我的设备中,但是我无法解决错误,请帮忙。
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中我不知道为什么我不能这样做。
答案 0 :(得分:2)
并非所有Objective C方法都将格式字符串作为参数/参数。您需要将字符串包裹在NSString stringWithFormat:
这样的呼叫中
docPostion = [docPostion stringByAppendingPathComponent:[NSString stringWithFormat:@"Slide%d.png",i]];
答案 1 :(得分:2)
而不是
docPostion = [docPostion stringByAppendingPathComponent:@"Slide%d.png",i];
使用
docPostion = [docPostion stringByAppendingPathComponent:[NSString stringWithFormat:@"Slide%d.png",i]];
您不能将格式字符串与任何NSString方法一起使用,只能使用某些方法(通常在其名称中使用单词format
)。
答案 2 :(得分:0)
方法stringByAppendingPathComponent
在这里传递一个变量作为参数2.(在逗号后首先"Slide%d.png"
然后i
。这就是它产生这个错误的原因。这是good description stringByAppendingPathComponent
的工作原理。