I have a text file of about 30 words on individual lines called GoodWords.txt and I want to use the file as the source of an array.
I started learning Swift once SwiftUI came out, so really I started learning SwiftUI without a background in Swift.
Some great and longstanding solutions are out there on various sites including this one, but they are all in Swift not SwiftUI- so the output to print isn't helpful for me.
Here was the most useful resource: Swift Text File To Array of Strings
I finally just tried to copy and paste the version 5 one into a SwiftUI file, but I don't understand where the function should go or where to call it.
I have included the text file "GoodWords.txt" in my project. Here is my code (I'll spare you the hours of other versions that didn't work):
//
// ImportTxtToArray.swift
// GoodWord
//
// Created by Gabe Mott on 11/16/22.
//
import SwiftUI
struct ImportTxtToArray: View {
func printLine() -> String {
let filename = "GoodWords"
var text: String
var myCounter: Int
guard let file = Bundle.main.url(forResource: "GoodWords", withExtension: "txt")
else {
fatalError("Couldn't find \(filename) in bundle.")
}
do {
let contents = try String(contentsOf: file, encoding: String.Encoding.utf8 )
let lines = contents.split(separator:"\n")
print(contents)
print(lines)
myCounter = lines.count
print(myCounter)
text = String(myCounter)
} catch {
return (error.localizedDescription)
}
return text
}
var body: some View {
printLine()
Text("\(text)")
}
}
struct ImportTxtToArray_Previews: PreviewProvider {
static var previews: some View {
ImportTxtToArray()
}
}
The error I get is "Cannot find text in scope"
I'd appreciate any help with how to do this but also explanations helping me understand how to read a Swift answer and get it into SwiftUI.
That is my main question at the moment: how to get a text file into my SwiftUI file to access it as an array.
The picture / screenshot just gives the context of why I want to learn this. It's a ery rough example of the code and what I am making (BTW for my next question, I'm relying on the color variable to make the counter work, I tried to remove the color variable and everything breaks, but I digress.)
I tried lots of answers that were old (Swift 3), tried: guard, do, catch... all I got were errors. Most solutions are for much more detailed advanced situations. I am looking for the fastest most efficient way to make my text file the source for single words in my array. ultimate goal is animation like cycling through words
Text(printLine())textdoes not exist outside yourprintLinemethod. The simplest solution to your issue is to use your method result insteadText(printLine())...I started learning SwiftUI without a background in Swift..., learn them the other way around, learn Swift first, then SwiftUI.