gpt4 book ai didi

ios - NSDictionary, (key :AnyObject, value:AnyObject) 没有成员名下标

转载 作者:可可西里 更新时间:2023-11-01 01:40:59 26 4
gpt4 key购买 nike

我正在为 IOS 学习 swift ,当我在 youtube 上做巡回演出时(Swift:Skip Wilson 的 Swift:使用外部数据库和 API)对于外部数据库,我找到了部分:

service = PostService()
service.getPosts {
(response) in
self.loadPosts(response["posts"]! as NSDictionary)
}

func loadPosts(posts:NSDictionary) {
for post in posts {
var id = (post["Post"]["id"] as String)
var title = post["Post"]!["title"]! as String
var author = post["Post"]!["author"]! as String
var content = post["Post"]!["content"]! as String
var postObj = Post(id: id, title: title, author: author, content: content)
postsCollection.append(postObj)
}
dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData()
}
}

最初这里的 NSDictionary 是 NSArray,但它不起作用,因为 NSArray 现在只接受 int 作为键,而 PostService.getPost() 返回类型 NSDictionary。所以我把它改成了 NSDictionary。

但是,所有的var id,title,author,content都出现了错误

(key:AnyObject, value:AnyObject) does not have a member name subscript

似乎我需要将键和值声明为 < String , String> ,但我现在不确定是否要这样做。Blow 是 Postservice 的代码:

class PostService {

var settings:Settings!

init(){
self.settings = Settings()
}

func getPosts(callback:(NSDictionary)->()) {
println("get posts")
request(settings.viewPosts,callback)
}

func request(url:String,callback:(NSDictionary)->()) {
var nsURL = NSURL(string: url)
println(callback)
let task = NSURLSession.sharedSession().dataTaskWithURL(nsURL!) {
(data,response,error) in
var error:NSError?
var response = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary
callback(response)
}
task.resume()
}
}

我知道这可能是一个非常简单和愚蠢的问题,但我在谷歌搜索后仍然无法弄清楚。我应该怎么办?非常感谢任何帮助。

最佳答案

这里的罪魁祸首是 Foundation 的 NSDictionary,它根本没有下标成员。您可以改为尝试使用 Swift 的 Dictionary 。如果您执意要使用 NSDictionary,您可以使用它的 objectForKey: API 来获取它的值。

关于ios - NSDictionary, (key :AnyObject, value:AnyObject) 没有成员名下标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29780977/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com