【问题标题】:NSArray of NSString to NSString of NSArray literal?NSString 的 NSArray 到 NSArray 文字的 NSString?
【发布时间】:2016-07-19 08:18:15
【问题描述】:

例如我有以下数组:

NSArray *arr = @[@"string1", @"string2", @"string3"];

我需要获取字符串:

@"@[@"string1", @"string2", @"string3"]"

原因很简单 - 当您从远程服务器的某处接收数组值时,需要一些时间。但是你可以找到这个字符串来离线测试应用程序的行为。

【问题讨论】:

  • 对不起,我不明白你为什么需要这样的文字。我认为当你从服务器获取数组时,你会得到它作为 json。
  • 我得到的是您需要将数组转换为 JSON 吗?
  • 对 Krzysztof,也许你是对的。但问题是即使在这种情况下,服务器也可能同时返回 json 和 xml(甚至纯文本),我也可能将响应作为数据和字符串格式。最后,不仅服务器生成“动态”数组,还生成隐藏代码的库。所以你的情况太特殊了。
  • to childrenOurFuture,您在这个问题中的哪里看到“JSON”?如果您甚至不想理解这个问题,请停止投票
  • 他认为 JSON 几乎就是您所要求的。您在问题中写的不是 JSON,而是非常接近。 iOS 内置了 JSON 转换类,可以轻松实现字符串和数组/字典之间的转换。

标签: ios nsstring nsarray converter literals


【解决方案1】:

您似乎正在尝试模拟从服务器获取 JSON?如果这就是您的目标,请将您需要的所有内容放入 NSDictionary,因为当您从服务器获取 JSON 时,您可能会将其序列化为 NSDictionary

NSArray *arr = @[@"string1", @"string2", @"string3"];
NSDictionary *myDictionary = @{@"myArray" : arr};

【讨论】:

  • 你建议不要使用一个简单的字符串来获取字典,序列化,每次反序列化它......我根本没有在我的问题中提到 json - 它可以是任何格式,甚至是普通的文本。
  • 为什么您实际上希望它们成为数组中的文字字符串?为什么不是“string1,string2,string3”?请您提供更多有关使用情况的信息吗?
  • 我得到一个字面量。然后我将此值复制到我的代码中并获取代理。一个小小的改变,我不需要访问服务器来测试相同的值
【解决方案2】:

我找到的最佳解决方案:

[NSString stringWithFormat:@"@[@\"%@\"]", [arr componentsJoinedByString:@"\", @\""]]

所以当我第一次运行代码时,我用这一行打印数组中的值。这行代码足够复杂好记,但即使在控制台中使用po 命令也很容易粘贴和使用。

然后我从控制台复制这一行并将其分配给我的数组。

也许有人知道更好的方法?

【讨论】:

    猜你喜欢
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多