我敲打我的头在这里
。
我试图解决这个问题"简单"了解问题。
我有一个API Endpoint
,我发送给许多不同的班级请求。我们假设我有一个Tweet
班级和User
班级。
class Tweet {
var id: String!
var description: String!
required init() { }
}
class User {
var id: String!
var username: String!
var likes : Int!
required init() { }
}
现在,根据Class
请求来源,我会得到Array
的回复,其中每个元素都拥有与源Class
完全相同的属性JSON
1}}。来自Tweet
Class
的示例请求:
"data":
[{
{
"id": "492",
"description": "HELP!"
},
{
"id": "574",
"description": "ME!"
}
]}
现在,我尝试创建一个Generic Method
,使用Array
类型的对象自动将其解析为Class
。
这就是我尝试过的
func sendRequest<T>(resource: T.Type,withProperyList propList : [String], completion: @escaping ([T]?) -> ()) {
// Create NSURLSession request, fetching data.. converting to json..
guard let mainArray = json["data"] as? NSArray else { return }
for element in mainArray {
let tweet = T() // **Error here**
}
错误:**&#39; T&#39;无法构造,因为它没有可访问的初始化程序
如何以通用方式访问我的Generic Type Class
?这意味着我将通过Class
类型并能够将其应用于“T&#39;”。我尝试将输入参数传递给它,但它没有帮助。我无法弄明白。有什么想法吗?
答案 0 :(得分:0)
而不是T()
,请试一试。
let tweet = resource.init()