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

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

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

2回复

stringByReplacingOccurrencesOfString:withString:

嗨,我是Objective C的新手,但我没有使用正在compileonline.com上提供的在线编译器的Mac。 今天我写了下面的程序 但是,此程序效果很好。 但是输出不是我期望的。 输出看起来像这样 当执行第8行和第11行时,不会打印名称。 我哪里出错了。 是程序
1回复

Objective-C NSString:登录时出现奇怪的字符

嘿,关于Objective-C / iPhone开发,我真是个菜鸟。 我正在尝试从SQLite数据库提取文本。 我有一个while循环,看起来像这样: 在该循环中,这可以正常打印到日志中: 这不起作用: 当我运行以上命令并查看日志时,我看到: 我试图将字段
3回复

NSLog NSString *打印不打印

我在使用NSLog方法和某些对象时遇到问题。 我的对象返回一个NSString *,但是该字符串与其他几个字符串连接在一起,如下所示: 但是,当我尝试使用NSLog这样打印它时: Xcode警告我: “格式字符串不是字符串文字(可能不安全)” 而且什么也没印出
2回复

以NSString格式打印'%'[重复]

这个问题已经在这里有了答案: 如何在NSString中添加百分号 7答案 我需要一些响应,例如100 %但无法在数字后打印%,因为它带有警告incomplete Identifier 。 我尝试搜索解决方案,使用\\%,'%',但没有帮助。
3回复

用指定的数字nr打印int

我正尝试打印出5位数字,如下所示: 我一直想拥有5位数字。 示例输出应为: 但是使用前面的代码,我也会得到1或555,而不是0。 我也尝试了%5i,但是我得到了更多的空格。
2回复

为什么NSLog有时会为ucode字符打印出八进制?

我在一个vanilla iPad单视图应用程序的viewDidLoad函数中运行以下代码: 输出如下所示: 八进制几乎总是在同一个角色上发生,并且打嗝每次运行随机发生约3次。 虽然它在NSLog()中相对无害,但它暗示unicode字符可能在某种程度上不规则地处理。 如果
2回复

NSString失败,应用程序尝试尝试NSLog崩溃NSError

在锡上说的是什么。 我要做的就是将NSString保存到我的Documents目录中的.txt文件中,以便用户可以访问它。 这在applicationWillTerminate中称为: 就我而言,成功返回否定,并且我的应用程序在NSLog行上崩溃(EXC_BAD_ACCESS)。
2回复

传递nsstring时传递null

我在头文件中定义了一个NSString,但是当我尝试从该控制器记录该字符串时,它传递了null,但是如果未从视图控制器中调用该变量,则会记录该变量的值,这是一个问题,因为当我尝试将其登录到其他视图控制器时,也传递null。 我发现了其他类似的问题,但是似乎没有解决方案会有所帮助,因此,如果您有
2回复

带有Unicode字符的iOS NSLog错误

谁能告诉我以下结果不一致的原因? 结果: 和 结果 谢谢
1回复

NSString有时使用引号登录控制台

背景 为了创建副本,我在NSDictionary上创建了一个类别,并对所有键进行了某些固定的修改(在将对象映射到Web服务时使用): 因此,我可以将@{ @"userName" : @"John"}映射(例如)到{@"UserName" : @"John"} 为了用作上述键转