Я создал счетчик, и мне удалось сохранить и загрузить эти данные. Проблема в том, что «var counter = 0», поэтому, когда я нажимаю счетчик вверх (+1) вместо перехода на следующий номер, он возвращается к 0, потому что переменная установлена на 0. heres мой кодInt To String Swift
class ReminderClass: NSViewController {
@IBOutlet var Count: NSTextField!
override func viewDidLoad() {
readStats()
super.viewDidLoad()
}
func readStats() -> (NSString?){
let location = NSString(string:"location to my file").stringByExpandingTildeInPath
let fileContent = try? NSString(contentsOfFile: location, encoding: NSUTF8StringEncoding)
print(fileContent)
Count.stringValue = (fileContent?.stringByExpandingTildeInPath)!
fileContent?.stringByReplacingOccurrencesOfString(Count.stringValue, withString: Count.stringValue)
return fileContent
}
var counter = 0 //thats the problem
var counterfind = ""
@IBAction func PlusOne(sender: AnyObject) {
counter = counter + 1
Count.stringValue = NSString(format: "%i", counter) as String
}
@IBAction func MinusOne(sender: AnyObject) {
counter = counter - 1
Count.stringValue = NSString(format: "%i", counter) as String
}
@IBAction func save(sender: AnyObject) {
print(Count.stringValue)
let data = NSString(string:Count.stringValue)
let destPath = "path to my file"
_ = NSFileManager.defaultManager()
do {
try data.writeToFile(destPath, atomically: true, encoding: NSUTF8StringEncoding)
} catch let error as NSError {
print("Error: \(error)")
}
print(counter)
self.view.window?.close()
}
Добавьте в свой код заявления о печати. Для отладки вы можете либо выполнять контрольные точки, либо просто добавлять простые инструкции печати, чтобы проверять значения по мере запуска кода и запускать функции. Я бы удостоверился, что метод даже привязан к кнопке и вызван. – JohnV
Почему вы устанавливаете счетчик на ноль, если вам не нужен нуль? –
Я хочу, чтобы счетчик равнялся значению текстового поля «count». Но я попробовал несколько способов, и xcode говорит, что переменная не может быть использована в этом классе. – Nate