个人理财 类型的Swift属性 - 虚拟属性

类型的Swift属性 - 虚拟属性

视频: Introduction to iOS, by Rhed Shi 2025

视频: Introduction to iOS, by Rhed Shi 2025
Anonim

在Swift中,如果需要,通常在从Objective-C转换的代码中)。另外,getter不需要使用get关键字。 Swift属性可以是变量或常量;每个类型可以被存储或计算,如下所示:

  • 声明一个变量属性: 一个变量与关键字var一起引入:

    var _fetchedResultsController:NSFetchedResultsController? = nil
    
  • 声明一个常量属性: 引入一个常量(即不能被修改的属性)和关键字let。前面的声明可以改为声明一个常量,如下所示:

    <! - 1 - >
    let _fetchedResultsController:NSFetchedResultsController? = nil
    
  • 声明存储的属性: 下面列表中显示的_fetchedResultsController声明是 存储属性 的典型声明。存储的属性是作为类,枚举或结构实例的一部分存储的属性。

    // MARK: - 获取结果控制器var fetchedResultsController:NSFetchedResultsController {if _fetchedResultsController! = nil {return _fetchedResultsController!} let fetchRequest = NSFetchRequest()//根据需要编辑实体名称。让实体= NSEntityDescription。 entityForName(“Event”,inManagedObjectContext:self。managedObjectContext!)fetchRequest。 entity = entity //将批量大小设置为合适的数字。 fetchRequest。 fetchBatchSize = 20 //根据需要编辑排序关键字。让sortDescriptor = NSSortDescriptor(key:“timeStamp”,升序:false)让sortDescriptors = [sortDescriptor] fetchRequest。 sortDescriptors = [sortDescriptor] //编辑段名称关键路径和缓存名称(如果适用)。 //节名称键路径为零,表示“无节”。让aFetchedResultsController = NSFetchedResultsController(fetchRequest:fetchRequest,managedObjectContext:self。managedObjectContext!,sectionNameKeyPath:nil,cacheName:“Master”)aFetchedResultsController。委托=自_fetchedResultsController = aFetchedResultsController var错误:NSError? =如果! _fetchedResultsController! 。 performFetch(&错误){/ /替换这个实现与代码来处理/ /适当的错误。 // abort()导致应用程序生成一个//崩溃日志并终止。你不应该在运输应用中使用这个//函数,尽管//在开发过程中可能是有用的。 println(“未解决的错误(错误),(错误。用户信息)”)abort()}返回_fetchedResultsController!} var _fetchedResultsController:NSFetchedResultsController?= nilBy默认情况下,传递给setter的变量名为newValue,

    ,Swift使用适当的类型。

    这个例子使用一个Objective-C模式作为支持变量:Swift存储的属性不需要以特殊字符(如下划线)开头;然而,它们确实需要被初始化,并在使用之前给出一个类型(可能是从初始化中推断出来的)。

    var _fetchedResultsController:NSFetchedResultsController? = nil
    
  • 用getter和setter声明一个计算属性: 这一点值得一点澄清。清单显示了一个Swift属性的基本getter和setter。你可以看到myVar有一个myInt的后备变量。 get和set关键字标识getter和setter。

    var myInt:Int = 0 var myVar:Int {get {return myInt} set {myInt = newValue}} myVar = 20
    

    这是您创建 计算属性 的方式。

    <! - 3 - >

除了下图所示的获取者和设置者外,还可以使用下一个列表中显示的观察者。这个代码在DetailViewController中。 Locatapp的快速文件(来自主从应用程序模板)。

var detailItem:AnyObject? {didSet {//更新视图。自。 configureView()}}在这个方法中设置一个断点,并在iOS模拟器中运行应用程序。该按钮导致该方法被调用。

这是调用视图更新程序的好地方(这正是模板中所做的)。有两个观察者可以使用:

  • didSet:在事实之后调用。

  • willSet:在设置发生之前调用。

类型的Swift属性 - 虚拟属性

编辑的选择

在QuickBooks Online中使用批发帐单 - 虚拟

在QuickBooks Online中使用批发帐单 - 虚拟

QuickBooks Online为会计专业人员提供免费程序。您可以注册批发价格计划,也可以免费使用QBOA。如果你选择这样做(这是一个不错的选择!),你将需要知道如何管理的事情。从您的批发帐单订阅中删除客户有时候,事情并不是这样...

基于零基础的预算与QuickBooks 2012 - 傻瓜

基于零基础的预算与QuickBooks 2012 - 傻瓜

零基预算是一个非常有用和常用的预算策略在使用QuickBooks 2012之前,您应该先了解一下。基于零的预算与顶级预算相反。零基预算从下到上工作。零基预算始于个人收入,费用,资产,负债和所有者权益账户。它检查一个特定的...

在Sage Timeslips中10个有用的键盘快捷键 - 虚拟键盘

在Sage Timeslips中10个有用的键盘快捷键 - 虚拟键盘

键盘快捷键可以是Sage Timeslips 。启动或保存一张单据,将昨天,今天或明天的日期插入日期字段,并用一个或两个按键打开和关闭定时器。以下是十大最爱。按下它做什么Ctrl + N开始一个新的投票,而工作在...

编辑的选择

可以在Photoshop Elements 11中的任意形状图层上绘制多个图形 - 虚拟模型

可以在Photoshop Elements 11中的任意形状图层上绘制多个图形 - 虚拟模型

Photoshop Elements 11中创建的任何形状图层上的图形。您可以按照与选择相同的方式添加,减去,排除重叠和相交形状。请遵循以下步骤:创建第一个形状后,在工具选项:添加到形状区域中选择一个状态按钮:...

使用读卡器将图像下载到Mac上 - 傻瓜

使用读卡器将图像下载到Mac上 - 傻瓜

您的相机可能有一个USB端口,电缆,您可以使用下载您的图像。这种方法使用相机电池电力,也相当缓慢。如果您使用读卡器,则会更快地将图像存入计算机。如果您下载了大量的图像,请考虑购买FireWire读卡器; ...

在Photoshop Elements 10中创建形状图层后,在Photoshop Elements 10中绘制多个图形 - 虚拟形状

在Photoshop Elements 10中创建形状图层后,在Photoshop Elements 10中绘制多个图形 - 虚拟形状

可以在该图层上绘制其他形状。您可以按照与选择相同的方式添加,减去,重叠和相交形状。请记住,当您在元素中创建一个形状时,您正在创建一个基于矢量的元素。向量在数学上描述形状。 ...

编辑的选择

在您的IOS应用程序中添加模态视图 - 在iPhone和iPad上虚拟视图

在您的IOS应用程序中添加模态视图 - 在iPhone和iPad上虚拟视图

对于那些希望用户(或用户想要)在应用程序流之外执行某些操作的情况非常适用。而不是使用带有后退按钮的导航控制器,而是显示一个模式视图,其中的控件允许用户选择一个动作或...

Android应用程序开发:你的Twitter应用程序的文件 - 傻瓜

Android应用程序开发:你的Twitter应用程序的文件 - 傻瓜

,这个Android Studio项目包含大约100个文件和大约170个不同的文件夹。要制作Android Twitter应用程序,您需要专注于该项目的MainActivity。 java文件。但其他一些文件需要注意。 Twitter4J API jar文件Android没有内置的通信支持...