在StoryViewController.swift:雨燕NilLiteralConvertible“错误:可选类类型
var story :Story?
if story != nil {...}// ERROR: Type UInt8 doer not conform to protocol 'NilLiteralConvertible'
在Story.swift:
class Story {
var title: String
var content: String
init(title: String, content: String) {
self.title = title
self.content = content
}
func description() -> String {
return title
}
class func loadStories(completion: ((Array<Story>?, NSErrorPointer) -> Void)!) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
var error: NSErrorPointer = nil
let path = NSBundle.mainBundle().bundlePath
let manager = NSFileManager.defaultManager()
var stories = [Story]()
if let contents = manager.contentsOfDirectoryAtPath(path, error: error) {
error = nil
for file in contents {
if file.hasSuffix(".grm") {
let filePath = path.stringByAppendingPathComponent(file as String)
let title = file.stringByDeletingPathExtension
let content = NSString(contentsOfFile: filePath, encoding: NSUTF8StringEncoding, error: error)
let story = Story(title: title, content: content)
if error != nil {
break
}
stories.append(story)
error = nil
}
}
}
stories.sort({ a, b in
a.title < b.title
})
dispatch_async(dispatch_get_main_queue(), {
if error != nil {
completion(nil, error)
} else {
completion(stories, nil)
}
})
});
}
}
难道我写的是正确的?我怎样才能修复错误:“在StoryViewController.swift中输入UInt8 doer不符合协议'NilLiteralConvertible'”?非常感谢!
更多:我只是想检查故事文件是否为空。如果不是,请在视图中显示信息。上面的代码在Swift beta3发布之前成功运行。我猜可能是新的NilLiteralConvertible协议引起这个错误。
/********************************************* ****/ 我从http://cdn5.raywenderlich.com/wp-content/uploads/2014/09/Grimm-Swift.zip下载这个项目作为我的练习从一个bbs。如果你没有任何修改就运行这个版本,你会注意到上面的错误。感谢这个项目的创造者。 /************************************************ */
你可能忽略什么原因造成的错误,因为该代码看起来不错,(有一些明显的改进),它可以在操场 – Antonio 2014-10-10 08:59:03
我认为你需要扩大'{。 ..}'对于我们 – 2014-10-10 09:07:39
好的,我在{...}中添加了代码。谢谢! – OzzieChen 2014-10-10 09:12:49