我在Objective-C中的代码是
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Logger.txt"];
NSString *content = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];
当我尝试将其转换为swift时,我无法转换它,因为方法ContentsOfFile
已被弃用。任何人都可以告诉我如何将其转换为swift?我正在使用Xcode 7.2和swift 2.2。我在swift中的代码是
var paths : NSArray = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
var documentsDirectory : NSString = paths[0] as! String
var filePath = documentsDirectory.stringByAppendingPathComponent("Logger.txt")
var error:NSError?
let content = NSString(contentsOfFile: filePath, encoding:NSUTF8StringEncoding, error: &error)
if let theError = error {
NSLog("\(theError.localizedDescription)")
}
答案 0 :(得分:27)
Swift 2 +
let path:String = NSBundle.mainBundle().pathForResource("Logger", ofType: "txt")!
txtContent.text = try? String(contentsOfFile: path, encoding: NSUTF8StringEncoding)
Swift 3 +
let path:String = Bundle.main.path(forResource: "Logger", ofType: "txt")!
txtContent.text = try? String(contentsOfFile: path, encoding: String.Encoding.utf8)
答案 1 :(得分:1)
我认为这会对你有所帮助:
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentsDirectory = paths[0]
let filePath = (documentsDirectory as NSString).stringByAppendingPathComponent("Logger.txt")
do {
let content = try NSString(contentsOfFile: filePath, encoding: NSUTF8StringEncoding)
}catch {/* error handling here */}