【问题标题】:NSMutableString is null after appending附加后 NSMutableString 为空
【发布时间】:2014-10-09 00:49:24
【问题描述】:

我正在尝试构建一个字符串数组,该数组将被添加到 XML soap 请求中。

我有一个简单的循环来构建数组:

MarcTagsList 是一个 NSArray 字符串,包含值 ["82a","100a","245b","520a"] 并作为参数传递。

NSMutableString *xmlTagList;

for(i=0; i<numberOfTags; i++)
{
   [xmlTagList appendFormat:@"<string>%@</string>",MarcTagList[i]];
   NSLog(@" appending - <string>%@</string>",MarcTagList[i]);

}

日志输出显示循环和 MarcTag 值正常,但是当循环完成时

NSLog(@"xmlTagList %@", xmlTagList);

显示 xmlTagList 为空。

【问题讨论】:

  • 那么,你最初是在哪里创建可变字符串的?
  • 线路在哪里:xmlTagList = [[NSMutableString alloc] init]
  • NSMutableString *xmlTagList = [NSMutableString new];
  • 如果您在调试器中运行代码,您会看到 xmlTagList 为 nil。

标签: ios objective-c


【解决方案1】:

首先intializexmlTagList字符串

//allocated
NSMutableString *xmlTagList=[[NSMutableString alloc] init];

//auto-referenced
NSMutableString *xmlTagList=[NSMutableString string];

//auto-referenced
NSMutableString *xmlTagList=[NSMutableString new];

//auto-referenced
NSMutableString *xmlTagList= @"";

现在使用xmlTagList 进一步要求,即追加操作

for(i=0; i<numberOfTags; i++)
{
   [xmlTagList appendFormat:@"<string>%@</string>",MarcTagList[i]];
   NSLog(@" appending - <string>%@</string>",MarcTagList[i]);

}

【讨论】:

  • 感谢所有回复...是的,我没有初始化字符串...我是 Objective-c 的新手
  • @HotLicks 你又对他人表现出攻击性?你不能终于长大了,有一些礼貌吗?对别人好。不是每个人都是代码猴子,人们有超越编码的生活,也许这就是为什么他们有礼貌而你没有。你真丢脸。
  • @Curnelious - 我很惭愧地解释说,除非他们有一些一般的编程经验,否则他们不应该开始使用 Objective-C 编程?不解释这一点对个人是一种伤害。
  • @HotLicks - 我不熟悉objective c 语法,并且被分配了必须完成的工作任务,所以我选择在这里问一些问题,而不是独自奋斗。毕竟这就是stackoverflow的用途不是吗? ...关于获得/提供技术帮助,而不是对某人的能力发表意见
  • @user1882582 - 除了调用语法和其他一些奇怪的东西之外,它是普通的旧 C(甚至不是 C++)语法。指针的工作方式与在 C 中的工作方式基本相同。在为指针赋值之前,您不能使用指针进行引用。
【解决方案2】:

变化:

NSMutableString *xmlTagList;

到:

NSMutableString *xmlTagList = [NSMutableString stringWithString:@""];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多