我正在尝试将数组存储到NSUserDefaults并在需要填充数据时检索数组UITableView.
目前我正在使用:
//store data
NSUserDefaults.standardUserDefaults().setObject(myArray, forKey: "\(identity.text!)listA")                    
NSUserDefaults.standardUserDefaults().synchronize()
//retrieve data
let tabledata = NSUserDefaults.standardUserDefaults().stringForKey("\(identity.text!)listA")
myArray = [tabledata!]
tableView.reloadData()
Run Code Online (Sandbox Code Playgroud)
但我明白了
致命错误:
nil在解包可选值时意外发现
在尝试加载数据时.我不确定问题是存储还是检索.以前有人经历过这个吗?
有没有办法重新加载UITableView具有动画的多个部分的特定单元格?
我一直在用:
self.TheTableView.reloadSections(NSIndexSet(index: 1), withRowAnimation: UITableViewRowAnimation.Right)
Run Code Online (Sandbox Code Playgroud)
这会激活该部分中的所有单元格.另一种选择是使用:
self.TheTableView.reloadRowsAtIndexPaths(<#indexPaths: [AnyObject]#>, 
                                         withRowAnimation: <#UITableViewRowAnimation#>)
Run Code Online (Sandbox Code Playgroud)
编辑:
使用reloadRowsAtIndexPaths之后
由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无效更新:第1节中的无效行数.更新后的现有部分中包含的行数(5)必须等于该行中包含的行数在更新(4)之前的部分,加上或减去从该部分插入或删除的行数(0插入,0删除)和加或减移入或移出该部分的行数(0移入,0移动出)."
试图通过将对象附加到数组中来找到重新加载tableview的平滑方法.
在reloadRowsAtIndexPaths工作之前调用TheTableView.reloadData(),但动画很糟糕.还有另一种方法吗?
我想知道是否有任何平滑的方法来检查swift范围内的整数值.
我有一个整数,可以是0到1000之间的任何数字
我想写一个if语句,"如果整数在300到700之间 - 这样做,如果有任何其他数字 - 做其他事情"
我可以写:
if integer > 300 {
    if integer < 700 {
      //do something else1
    }
    //do something
} else {
    // do something else2
}
Run Code Online (Sandbox Code Playgroud)
但是我想最小化要编写的代码量,因为"做其他事情1"和"做其他事情2"应该是相同的
你好像不能写:
if 300 < integer < 700 {
} else {
}
Run Code Online (Sandbox Code Playgroud)
我试过用
if integer == 300..<700 {
}
Run Code Online (Sandbox Code Playgroud)
但那也不起作用.有人有个建议吗?
我一直在努力寻找如何在用户输入时检查文本字段的输入.
如果用户键入单词,则应根据某些定义的规则更改标签和图像.
我的代码正在运行,但我总是落后一步.(因为它总是在输入下一个字符之前读取内容.
如果它只是为了检查长度我可以使用countElements(textfield)+ 1,但我希望它还表明用户在键入时不能使用某些字符,因此这对于检查不需要的字符是行不通的.
我假设我使用的功能不是正确的"shouldChangeCharacters".所以我对使用什么感到有点迷茫.有没有办法读取println或NSLog命令返回到插座?
    func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
        let passwordcheck = UserPasswordTextField.text
       
        if UserPasswordTextField.isFirstResponder() {
            if isValidPassword(passwordcheck) {
            PWimg.image = UIImage(named: "passwordapprovedicon")
            } else if passwordcheck.isEmpty {
                PWimg.image = UIImage(named: "passwordiconwrong")
            } else {
            PWimg.image = UIImage(named: "passwordiconwrong")
            }
}
     func isValidPassword(testStr2:String) -> Bool {
        println("validate password: \(testStr2)")
        
        let passwordRegEx = "[A-Z0-9a-z._%+-:/><#]{6,30}"
        
        if let passwordTest = NSPredicate(format: "SELF MATCHES %@", passwordRegEx) {
            return passwordTest.evaluateWithObject(testStr2)
        }
        
        return false       Run Code Online (Sandbox Code Playgroud)
swift ×4
ios ×2
tableview ×2
character ×1
if-statement ×1
integer ×1
range ×1
reloaddata ×1
row ×1
textfield ×1