相关疑难解决方法(0)

swift将设置didSet并获取属性中的set方法

willSet- didSetget- 之间的区别是什么set

从我的角度来看,他们都可以为一个属性设置一个值.何时以及为什么我应该使用willSet- didSet,何时get- set

我知道,对于willSetdidSet,结构看起来像这样:

var variable1 : Int = 0 {
    didSet {
        println (variable1)
    }
    willSet(newValue) {
    ..
    }
}

var variable2: Int {
    get {
        return variable2
    }
    set (newValue){
    }
}
Run Code Online (Sandbox Code Playgroud)

properties ios swift didset

45
推荐指数
2
解决办法
4万
查看次数

Kotlin中有didSet/willSet模拟器吗?

我喜欢这个Swift语法; 它对很多东西很有帮助:

var foo: Bar = Bar() {
    willSet {
        baz.prepareToDoTheThing()
    }
    didSet {
        baz.doTheThing()
    }
}
Run Code Online (Sandbox Code Playgroud)

我很乐意在Kotlin这样做.但是,我找不到合适的语法!

Kotlin有什么相似的东西吗?

var foo: Bar = Bar()
    willSet() {
        baz.prepareToDoTheThing()
    }
    didSet() {
        baz.doTheThing()
    }
Run Code Online (Sandbox Code Playgroud)

properties kotlin didset

36
推荐指数
1
解决办法
6630
查看次数

swift setter导致exc_bad_access

我下面有一个简单的课程

import Foundation

public class UsefulClass: NSObject{
    var test:NSNumber{
        get{return self.test}
        set{
            println(newValue)
            self.test = newValue
        }
    }
    override init() {
        super.init()
        self.test = 5;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在这里初始化它

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        var testClass = UsefulClass()
    }
}
Run Code Online (Sandbox Code Playgroud)

但是由于EXC_BAD_ACCESS代码= 2,它会导致xcode打印出200 5s然后崩溃.为什么会发生这种情况?

setter exc-bad-access swift

7
推荐指数
2
解决办法
7236
查看次数

什么时候在 Swift 中使用 set 和 willSet?

两者不会几乎同时发生吗?时间流逝会如此微小,以至于我将代码放入哪个并不重要吗?

编辑:我的问题与那个链接不同,因为我在谈论 set 和 willSet 的功能,而链接则在谈论 willSet 和 didSet 的功能。因此,正在讨论两个不同的关键字。我知道 willSet 和 didSet 之间的区别,并且想了解更多关于 set 和 willSet 的信息。

class set swift

5
推荐指数
2
解决办法
2019
查看次数

如何在 xcode 中观察变量值随时间的变化

我目前正在使用 swift 学习 ios 开发,我只是想知道 xcode 是否有办法

1) 只要变量的值发生变化,就在变量上设置断点

或者

2)以某种方式跟踪变量值随时间的变化

variables debugging xcode ios swift

5
推荐指数
1
解决办法
2397
查看次数

使用Getters和Setter来修改没有Swift中Subclassing的值

假设我有一个类,当我设置它的属性时,我希望它附加一个文件类型的属性.fileType:

class File {
    var fileName: String {
    get {
        return self.fileName
    }
    set {
        self.fileName = fileName + ".fileType"
    }
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用这样的:

let newFile = File()
newFile.fileName = "My File"
Run Code Online (Sandbox Code Playgroud)

不幸的是,变量从未设置:

检查点

我有两种可能的解决方法.

选项1:设置后观察值

class File {
    var fileName: String = "" {
    didSet {
        self.fileName += ".fileType"
    }
    }
}

let file = File()
file.fileName = "SomeName" // SomeName.fileType
Run Code Online (Sandbox Code Playgroud)

但是有了这个,我必须等到这个值已经设置好才能修改它.对于这个特殊的例子,它并没有太大的区别; 但是,我希望能够避免这种情况.

选项2:子类

此解决方案基于此处的示例. 搜索'speedLimitedCar'

class File {
    var fileName = ""
}

class …
Run Code Online (Sandbox Code Playgroud)

swift

4
推荐指数
1
解决办法
9588
查看次数

didSet 与 willSet?

我在编程方面非常陌生,并且很难理解这两个属性观察者。

我目前正在构建一个带有表格视图的应用程序,其中日期选择器包含在它的行中。在本例中,我有两个日期选择器。众所周知,日期选择器在单元格中占据很大的高度,因此您需要隐藏它们。下面的代码可以处理它:

var isCheckInDatePickerShown: Bool = false {
    didSet{
        checkInDatePicker.isHidden = !isCheckInDatePickerShown
    }
}

var isCheckOutDatePickerShown: Bool = false {
    didSet{
        checkOutDatePicker.isHidden = !isCheckOutDatePickerShown
    }
}
Run Code Online (Sandbox Code Playgroud)

我有非常基本的编程知识,所以我对didSet. a 会发生什么willSet

ios swift

4
推荐指数
1
解决办法
3792
查看次数

在Alamofire连接之前调用numberOfRowsInSection

我从Alamofire获取数据viewDidLoad,然后将其放入answerArray.然而,Alamofire连接之前,将numberOfRowsInSection被调用和返回0.我怎样才能通过Alamofire获取数据,然后再拿到eventArray.countnumberOfRowsInSection

var answerArray = NSMutableArray()

override func viewDidLoad() {
let parameters = [
        "id":questionNum
    ]

    Alamofire.request(.POST, "http://localhost:3000/api/v1/questions/question_detail",parameters: parameters, encoding: .JSON)
        .responseJSON { (request, response, JSON, error) in
            println(JSON!)
            // Make models from JSON data
            self.answerArray = (JSON!["answers"] as? NSMutableArray)!
    }
    self.tableView.reloadData()
}


override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return answerArray.count

}
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift alamofire

3
推荐指数
2
解决办法
499
查看次数

单元格变量为零,其中设置了值 collectionview 索引路径

我花了很多时间..但我不知道为什么它不起作用..调用索引路径的单元格并正确设置值但单元格类我发现值为零..如果您需要任何信息,请告诉我。

在我的 collectionview 索引路径中

在此处输入图片说明

在 collectionview 单元格中

在此处输入图片说明

这是我的代码:

对于集合视图:

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: menuBarItemDetailId, for: indexPath) as! MenuBarItemDetail
        cell.shopCategory = "600"
        print(cell.shopCategory)
        return cell
    }
Run Code Online (Sandbox Code Playgroud)

对于细胞:

class MenuBarItemDetail: UICollectionViewCell , UITableViewDataSource , UITableViewDelegate {
    var shopCategory : String?

    override init(frame: CGRect) {
        super.init(frame: frame)

         print("shopCategory :-> ...i am calling from cell :\(shopCategory)")
}
Run Code Online (Sandbox Code Playgroud)

ios swift swift2

2
推荐指数
1
解决办法
822
查看次数

swift中`didset`和`willset`有什么区别?

我有理解之间的差别难度willSetdidSet.有人可以对他们的使用有所了解吗?

ios swift

0
推荐指数
1
解决办法
1532
查看次数

从UItableview按字母顺序对数据排序的最简单方法

我看了一下,但找不到合适的答案。我有一个用药物名称填充的表格视图。药品已输入,因为它们是从文本输入Xcode的,如下所示。

class MasterViewController: UITableViewController {

// MARK: - Properties
var detailViewController: DetailViewController? = nil
var drugs = [Drug]()
var filtereddrugs = [Drug]()
let searchController = UISearchController(searchResultsController: nil)

// MARK: - View Setup
override func viewDidLoad() {
    super.viewDidLoad()

    // Setup the Search Controller
    searchController.searchResultsUpdater = self
    searchController.searchBar.delegate = self
    definesPresentationContext = true
    searchController.dimsBackgroundDuringPresentation = false

    // Setup the Scope Bar
    searchController.searchBar.scopeButtonTitles = ["All", "Green", "Blue", "Amber", "Red", "Black"]
    tableView.tableHeaderView = searchController.searchBar

    drugs = [
        Drug(category:"Green", name:"Magnesium Trisilicate"),
        Drug(category:"Green", name:"Co-magaldrox (Mucogel)"),
        Drug(category:"Green", …
Run Code Online (Sandbox Code Playgroud)

sorting uitableview ios swift

0
推荐指数
1
解决办法
1210
查看次数