无法将类型 [NSObject : AnyObject] 转换为字符串
Posted
技术标签:
【中文标题】无法将类型 [NSObject : AnyObject] 转换为字符串【英文标题】:Cannot convert the type [NSObject : AnyObject] to string 【发布时间】: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 中粘贴不可读的代码。 【参考方案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 分钟发布一次。但是我会尽快将链接发送给您以上是关于无法将类型 [NSObject : AnyObject] 转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章
无法将“对象”表达式转换为类型“MonoTouch.Foundation.NSObject”
无法将类型“NSMutableDictionary”的值转换为强制类型“[NSObject: AnyObject]”以用于 google ios Analytics
无法从 AppDelegate 访问 NSObject 的公共方法