2015-10-28 6 views
0

Я еще раз с другой проблемой. В своей попытке научиться быстрому Ive решил, что писать кучу маленьких случайных сценариев игровых площадок, которые я могу вернуться и использовать в качестве ссылок позже, - это хорошее место для начала.Невозможно распечатать содержимое файла в swift

цель

То, что я работаю сейчас, это небольшой скрипт, который использует 2 различные способы чтения и тот же файл, печать содержимого файла, когда закончите.

Используя несколько советов, которые я нашел здесь, в стеке (а также официальные документы), мне удалось собрать сценарий, который должен выполнить вышеуказанную цель. (Пожалуйста, простите за тяжкое комментируете, как эти ссылки)

//Import for use of NSString 
import Foundation 

//ATTEMPT #1 
//Set file locations 
let location = NSString(string:"/Users/me/Desktop/file.txt").stringByExpandingTildeInPath 
//Make fileContent = data within file 
let fileContent = try? NSString(contentsOfFile: location, encoding: NSUTF8StringEncoding) 
//print content of file 
print("The file contains:\n", fileContent, "\n") 

//ATTEMPT #2 
//set filename 
let filename = "file.txt" 
//set document path 
let documentsPath = "/Users/me/Desktop" 
let destinationPath = documentsPath + "/" + filename 
//read file 
let data: NSData? = NSData(contentsOfFile: destinationPath) 
print("The file contains:\n", data, "\n") 

Выпуск

Я создал файл в заданном месте, но независимо от того, как я стараюсь работать либо немного кода, я Получать ' nil 'в качестве содержимого моего файла (который просто «hello world»)

Файл представляет собой простой текстовый файл UTF8, сделанный с помощью textwrangler. Нет свободного места до или после моей строки в файле. Любые идеи очень приветствуются.

Изменено:

//Set file locations 
let location = NSString(string:"/Users/l8nit3/Documents/file.txt").stringByExpandingTildeInPath 
//Make fileContent = data within file 
let fileContent = try? NSString(contentsOfFile: location, encoding: NSUTF8StringEncoding) 

к:

//Set file locations 
let location = NSString(string:"/Users/l8nit3/Documents/file.txt") 
//Make fileContent = data within file 
let fileContent = try? NSString(contentsOfFile: location as String, encoding: NSUTF8StringEncoding) 

, чтобы удалить использование .stringByExpandingTildeInPath в соответствии с предложениями

+1

На самом деле больше нет. Игровая площадка это песочница –

+1

Вам нужно будет протестировать ее с использованием фактического проекта –

+1

Почему вы используете stringByExpandingTildeInPath без тильды? –

ответ

1

На самом деле не больше. Игровая площадка изолирована песочницей, поэтому вам нужно протестировать ее с помощью реального проекта. Вы можете поместить файл в путь папки папок на игровой площадке для тестирования с помощью Finder's Go to Folder (Shift-Command-G), чтобы найти его.

Смежные вопросы