我的类有一个返回路径的func到某个文件:
func getArchivePathFor(fileName: String!) -> String {
var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
var path: String = paths.stringByAppendingPathComponent(fileName!)
return path
}
但是当我尝试在我的代码中使用它时:
let val = Helpers.getArchivePathFor("MyList.plist")
我收到错误:"我的func返回的返回字符串不符合协议StringLiteralConvertible错误"。为什么这样?
答案 0 :(得分:1)
您正在声明一个实例方法,而Helpers.getArchivePathFor("MyList.plist")
正在调用一个类方法。
如果要声明类方法,请尝试使用前缀class
:
class Helpers {
class func getArchivePathFor(fileName: String!) -> String {
^^^^^
答案 1 :(得分:1)
在这种情况下,错误消息非常容易引起误解。您似乎使用getArchivePathFor
作为类函数。但它被声明为实例函数。尝试:
class func getArchivePathFor(fileName: String!) -> String {
...
}
答案 2 :(得分:0)
试试这个
struct Helper
{
static func getArchivePathFor(fileName: String!) -> String
{
var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
var path: String = paths.stringByAppendingPathComponent(fileName!)
return path
}
}