【问题标题】:Cannot convert the type [NSObject : AnyObject] to string无法将类型 [NSObject : AnyObject] 转换为字符串
【发布时间】:2016-03-21 07:46:50
【问题描述】:

我在 Swift 中使用 Xcode 7.2 编写了这段代码 ..

func silentPostData(serverName: String, serverport serverPort: String, serverurl serverURL: String, parameters: [NSObject : AnyObject], urldata urlData: NSData) {
    let persist = Persistence()
    var finalURl = "https://\(serverName):\(serverPort)/\(serverURL)"
    for key : String in parameters  {
        finalURL = finalURL.stringByAppendingString(key)
        finalURL = finalURL.stringByAppendingString("=")
       finalURL = finalURL.stringByAppendingString((parameters[key] as! String))
        finalURL = finalURL.stringByAppendingString("&")
    }
}

我在 "for key : String in parameters {" 行中收到错误(如标题所述)。根据之前的答案'(NSObject, AnyObject)' is not convertible to 'String',我尝试将其转换为 NSString ,但没有成功。所以有人知道如何将 [NSObject:AnyObject] 转换为 string 吗?提前谢谢你。

【问题讨论】:

  • 无法将字典转换为字符串。
  • 但它适用于我的 Objective C 代码..
  • - (void)silentPostData :(NSString*) serverName serverport:(NSString*)serverPort serverurl:(NSString*)serverURL 参数:(NSMutableDictionary*)parameters urldata:(NSData*)urlData { Persistence *持久 = [[持久化分配]init]; NSString *finalURL = [NSString stringWithFormat:@"https://%@:%@/%@?", serverName, serverPort, serverURL];
  • for(NSString *key in parameters) { finalURL = [finalURL stringByAppendingString:key]; finalURL = [finalURL stringByAppendingString:@"="]; finalURL = [finalURL stringByAppendingString:[参数 objectForKey:key]]; finalURL = [finalURL stringByAppendingString:@"&"];
  • 您可以只编辑自己的问题,而不是在 cmets 中粘贴不可读的代码。

标签: ios swift


【解决方案1】:

就像 cmets 所说,它是一本字典,您可以通过以下方式获取字符串:

parameters.keys.flatMap { $0 as? String }.forEach {
    finalURL = finalURL.stringByAppendingString($0)
    finalURL = finalURL.stringByAppendingString("=")
    finalURL = finalURL.stringByAppendingString(parameters[$0] as? String ?? "")
    finalURL = finalURL.stringByAppendingString("&")
}

【讨论】:

  • 我还有个疑问,你能在这里回答吗?
  • 当然,您可以编辑您的问题或提出一个新问题。
  • 我无法发布该问题,因为我可以每 90 分钟发布一次。但是我会尽快将链接发送给您
猜你喜欢
  • 2018-03-05
  • 1970-01-01
  • 2017-01-06
  • 2016-10-04
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
  • 2018-06-06
  • 2016-10-28
相关资源
最近更新 更多