I finished building a task iOS app using Swift. The whole app was completed and finished with no errors and was functioning correctly. I was using Xcode 6 but I upgraded to the latest Xcode Beta not long ago which is Xcode 7 Beta. In one of my swift files, since some of the logic has been altered from switching xcode 6 to xcode 7 beta, there is only one error that was once not an error from xcode 6. In my of my lines the error was; "Cannot invoke 'taskCreated' with an argument list of type '([String : String?])'" How do I get around this error?
The line of code is below:
delegate!.taskCreated(["name": nameTask, "description": descriptionTask])
If anyone wants to see my "taskCreated" function, I'll post it below here as well.
func taskCreated(task: Dictionary<String, String>) {
print("in task created delegate of ViewController")
print(task)
dataSource[0].append(task)
tableView.reloadData()
}
One of nameTask
or descriptionTask
is of type String?
. You can unwrap them with an exclamation mark:
delegate!.taskCreated(["name": nameTask!, "description": descriptionTask!])
The variable nameTask
or descriptionTask
is not a String but an Optional(String)
(represented as String?
) which is why it says you cannot call taskCreated
with [String: String?]
. You can only send [String: String]
.
If you're sure nameTask
and descriptionTask
are never nil, just replace its call with: delegate!.taskCreated(["name": nameTask!, "description": descriptionTask!])
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.