我正在进入使用结构,现在我被困在第一个VC,它工作,因为我期望在另一个VC。 这是我在我的第一个VC(我应该有一个单独的文件中的结构?) 我需要使用lVisitors = ListVisitors.sharedInstance在我的第一个VC(其他VC似乎工作)中填充tableview, struct ListVisitors{ static var sharedInstance = [Visitor]() static func register() { //NSUserDefaults.standardUserDefaults().registerDefaults( ["tasks" : [String]()]) } static func load() { //Task.tasks = NSUserDefaults.standardUserDefaults().objectForKey("tasks") as! [String] } static func save() { //NSUserDefaults.standardUserDefaults().setObject(Task.tasks, forKey:"tasks") } static func append(visitor : Visitor) { //Task.tasks.append(string) ListVisitors.sharedInstance.append(visitor) } } class ScannerViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, AVCaptureMetadataOutputObjectsDelegate { […]
我有一个有50多个问题的应用程序。 每个问题都有: 一个问题, 正确答案 三个不正确的答案 图像名称 所以我做了一个结构与这些属性。 一次只有一个问题在屏幕上,所以我开始设置我的问题是这样的: let question1 = structName… (pass question info) let question2 = structName… (pass question 2 info) 但是,这是一个“可变的未使用的”警告。 我做错了什么,我该怎么做呢?
我从这个 Apple页面直接拉出了这个例子 struct FixedLengthRange { var firstValue: Int let length: Int } 如果您将此结构的实例分配给常量, let rangeOfFourItems = FixedLengthRange(firstValue: 0, length: 4) 它说我们不能改变它的属性值,即使它被声明为“var” 这让我想知道如何实现? 我希望在编译时可以检测到任何赋值,并显示编译错误。 但是在上述情况下,为什么它适用于结构的每个属性,而不pipe它是如何定义的? 我试图search这个,发现很难search关键字'let',因为这是相当常见的术语。 任何人都可以帮我理解这个吗?
有一个简单的方法来遍历一个结构的所有属性? 我熟悉的非静态属性的方法是使用Mirror ,但是当结构只包含静态属性时,这将返回一个空数组。 这是我想要实现的一个例子: struct Tree { static let bark = "Bark" static let roots = "Roots" } let treeParts = [String]() // insert code here to make treeParts = ["Bark", "Roots"]
我试图将ILTItemvariables传递到我的ILTViewController,当用户通过深层链接启动我的应用程序时,由AppDelegate.swift触发。 我有错误的代码: 不能调用非函数types的值'String' 在我定义ilt的行上。 这是我现在的代码: let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate var ilt = ILT(homeworkID: 1234, title: "History ILT", subject: "History", teacher: "Miss A Smith", teacherCode: "asmith", studentID: 12345, description: "Description….", due: 1450137600, status: "In Progress", hasAttachments: true) var newVC = ILTViewController() newVC.ILTitem = ilt appDelegate.window?.addSubview(newVC.view) 为什么会这样? 在我的ILTViewController类中,我有: class ILTViewController: UIViewController { // accept the […]
NSRange只是一个C结构。 我想在断点处在Xcode中创build一个临时的。 专门用于NSArray方法objectAtIndex:inRange: 这不起作用。 (lldb) expr NSRange $tmpRange = (NSRange){0,4} (lldb) expr $tmpRange (NSRange) $tmpRange = location=0, length=4 (lldb) expr -o — [items indexOfObject:item4 inRange:$tmpRange] error: no matching constructor for initialization of 'NSRange' (aka '_NSRange') error: 1 errors parsing expression 我的代码在断点处有一个名为badRange的NSRange var,并将其传递给作品。 从而: (lldb) expr -o — [items indexOfObject:item4 inRange:badRange] 0x7fffffffffffffff (lldb) expr badRange (NSRange) […]
想知道是否有人可以帮助我在Swift中使用谓词进行过滤。 我有一个有点凌乱的数据源,我正在使用填充UITableView。 数据源是一个结构数组。 结构定义如下: struct Exercises { let category: String let name : String let x_seed: [Double] let y_seed: [Double] let hasMult: Bool } 现在在我的tableview控制器中,我持有一个包含表的所有数据的结构数组。 class MainTableViewController: UITableViewController, UISearchResultsUpdating { var exercises = [Exercises]() var filtered_exercises = [Exercises]() var resultSearchController = UISearchController() override func viewDidLoad() { super.viewDidLoad() // MARK: – Table view data source self.exercises […]
我试图深入了解Swift如何复制值types : 您在代码中看到的行为将始终像发生副本一样。 但是,当绝对必要的时候,Swift只能在幕后执行一个实际的副本。 为了提高我的理解,我想获得一个值types的内存地址。 我尝试unsafeAddressOf(),但这不适用于结构,它似乎将Swift的标准库types转换为引用types (例如,string转换为NSString)。 我怎样才能得到一个值types的内存地址,像一个Int的实例,或在Swift中的自定义结构?
我开始学习Swift语言,并且无法绕过Protocols,Structs和Classes。 我来自Android的编程方面,所以我相信Swift协议基本上是Java接口? 什么是正确的用例每个这些?
我有三个textifleds,我正在使用将数据追加到一个结构。 我怎样才能打印我附加的内容? 现在我收到一条错误消息。 import UIKit class ViewController: UIViewController { @IBOutlet var c: UITextField! @IBOutlet var a: UITextField! @IBOutlet var b: UITextField! var contacts: [Person] = [] @IBAction func press(_ sender: Any) { contacts.append(Person(name: a.text!, surname: b.text! , phone: Int(c.text!)!)) print(ViewController.Person) } struct Person { var name: String var surname: String var phone: Int } }