В StoryViewController.swift: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)
}
})
});
}
}
Могу ли я написать это правильно? Как я могу исправить ошибку: «Тип UInt8 doer не соответствует протоколу« NilLiteralConvertible »в StoryViewController.swift? Большое спасибо!
еще: я просто хочу проверить, пуст ли файл истории. И если это не так, покажите информацию в представлении. Код выше успешно работал до того, как выпущена версия Swift beta3. Я думаю, может быть, новый NilLiteralConvertible protocal вызывает эту ошибку.
/********************************************* ****/ Я загружаю этот проект от http://cdn5.raywenderlich.com/wp-content/uploads/2014/09/Grimm-Swift.zip как мое упражнение от bbs. Если вы запустите эту версию без каких-либо изменений, вы заметите ошибку выше. Спасибо создателю этого проекта. /************************************************ */
Вы, вероятно, опуская то, что вызывает ошибку, потому что код выглядит хорошо, и (с некоторыми очевидными изменениями) она работает на детской площадке – Antonio
Я думаю, что вам нужно расширить '{. ..} 'для нас –
Хорошо, я добавил код в {...}. Благодаря! – OzzieChen