我正在尝试存储名为 total 的变量,该变量包含UITableView
中的行数。由于用户为UITableView键入字符串,因此该变量是 listTable ,即String数组。
我的总计为total = listTable.count
ISSUE:
每次启动应用程序时,它都显示0作为使用的行数,但是一旦你转到UITableView ViewController并返回到主ViewController,它会自动将其自身更正为当前的行数。
使用的代码:
import UIKit
var listTable = [String]()
var total = listTable.count
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var numberOfRows: UILabel!
@IBOutlet weak var TypeToCreateRow: UITextField!
@IBOutlet weak var AddRow: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
total = listTable.count
NSUserDefaults.standardUserDefaults().setObject(total, forKey: "rows")
let showRow = NSUserDefaults.standardUserDefaults().objectForKey("rows")!
numberOfRows.text = "\(showRow)"
print(showRow)
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func RowAdd(sender: UIButton) {
listTable.append(TypeToCreateRow.text!)
TypeToCreateRow.text = " "
numberOfRows.text = "\(total)" }
答案 0 :(得分:1)
简单如下:
[[NSUserDefaults standardUserDefaults]setObject:value forKey:@"key"];
并在以下后找到它:
NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
[user objectForKey:@"login"]
答案 1 :(得分:0)
在阅读之前先设置对象。这就是为什么你先写0并立即阅读。
这两行没有达到任何目的。
NSUserDefaults.standardUserDefaults().setObject(total, forKey: "rows")
let showRow = NSUserDefaults.standardUserDefaults().objectForKey("rows")!
在获得正确的值后,您需要setObject
,稍后在代码中。不是一开始。
同样正如JAL所提到的,你应该使用setInteger
代替对象,因为它更加优化。