当我尝试打印此字符串时,访问错误:

NSString *myPath = [myPath stringByReplacingOccurrencesOfString:@"/Users/Me/Library/iPhone/4.2/MyApp/Documents/Photos/pic1.png" 
                                                         withString:@"/Users/John/Library/iPhone/5/MyApp/Documents/Photos/picture.png"];

    NSLog(@"%@", myPath);

为什么? 谢谢。

===============>>#1 票数:2 已采纳

该错误是因为您正在尚未实例化的变量(myPath)上调用方法stringByReplacingOccurrencesOfString:withString。 您需要在NSString类的实例上调用该方法,该实例已经包含您要替换文本的字符串。

===============>>#2 票数:1

调用方法时,可以在receiver上调用它。 因此,您正在myPath上调用stringByReplacingOccurrencesOfString:withString:

您正在将方法的值分配给

NSString *myPath

这让我假设myPath

[myPath ....

实际上没有设置任何东西。 (可能指向垃圾)

你想要的是这样的

NSString *startString = @"hello";

//                            Receiver         Message
//                               |                |
//                               v                v
NSString *replacedString = [startString stringByReplacingOccurrencesOfString:@"hello" 
                                                                  withString:@"bye bye"];

NSLog(@"Results in => %@", replacedString);

// Output
2011-12-11 20:50:01.964 Untitled 2[779:707] Results in => bye bye

在上面的评论中,您尝试了NSString *myPath = [[NSString alloc] init]; 这将创建一个空字符串。 空字符串不包含任何出现的@"/Users/Me/Library/iPhone/4.2/MyApp/Documents/Photos/pic1.png"因此无法替换它们。

  ask by Xtrician translate from so

未解决问题?本站智能推荐: