首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Active Record 数据验证

    数据验证和使用的数据库种类无关,终端用户也无法跳过,而且容易测试和维护。...数据验证的方式主要有数据库原生约束、客户端验证和控制器层验证: 数据库约束无法兼容多种数据库,难以测试和维护,但是如果其他应用也要使用这个数据库,最好能够在数据库层做一些约束。...客户端验证可靠性不高,但是和其他验证方式结合可以提供实时反馈 控制器层验证不灵便,难以测试和维护,只要可能就应该保证控制器的代码简洁,这样才有利于长远发展 Active Record 对象分为两种...), message: "%{value} is reserved"} end in 选项设置哪些值不能作为属性的值,in 的别名是 with formate 这个方法检查属性的值是否匹配 :with...validates_each 这个方法使用代码块中的代码验证属性,需要在代码块中定义验证方式。

    1.4K20

    iOS的MVC框架之控制层的构建(下)

    我们知道在iOS的loadView的默认实现逻辑是首先会到SB或者XIB中去根据视图控制器的类型去搜索是否有匹配的视图布局文件,如果有则将这个视图布局文件进行解析并构建对应的视图层次树并设置视图控制器中的那些插座变量...采用分类扩展的方法 顾名思义,采用分类扩展的方法就是为视图控制器专门建立一个视图构建和布局的分类扩展。为了将这部分代码和控制器中其他代码分离,我们可以将视图构建的分类扩展代码单独放到新文件中来实现。...如果我们想完全实践MVC中的V独立存在并且可以被复用的话,我们可以将视图构建和布局单独抽象到一个视图类中,并且通过接口定义和消息转发的方法来建立控制器和视图之间的联系。...第一种方法本质上只是做了一些代码拆分,并未实现控制器和视图的完全分离;第二种方法则完全实现了视图和控制器之间的分离,视图的构建和布局不再依赖于控制器的存在,而且我们甚至可以对视图进行复用,也就是说可以让多个控制器类复用一个视图类中的代码...通过提供方法的形式可以让我们的UITableViewCell不需要暴露里面的视图层次和视图属性给外面,提供的方法的参数都是一些数据即可,所有的视图更新和样式的设置都在方法内部完成,这样就可以减少在视图控制器中的代码量

    4.4K30

    【IOS开发基础系列】UIView专题

    如果视图是nil,那么这个方法将会转换成基于窗口的坐标。否则视图和接收者都要属于同一个UIWindow对象。...如果视图是nil,那么这个方法将会基于窗口来转换。...如果这个是视图是nil,这个方法将会基于窗口坐标系来转换。...原始的帧在它的父视图的坐标系中。设置这个属性用来改变中心和边界属性。 返回值     一个初始化的视图对象,如果没有被创建那就返回nil 讨论     一个新的视图对象必须添加到视图链中才能使用。...这个selector必须由和beginAnimations:context:方法相同的参数,一个任选的程序标识和内容。这些参数都可以是nil。 讨论         这个方法在动画块外没有任何作用。

    70630

    【IOS开发基础系列】UIAlertController专题

    、更灵活,因此许多视图控制器的实现方式发生了巨大的变化。...全新的UIPresentationController在实现视图控制器间的过渡动画效果和自适应设备尺寸变化效果(比如说旋转)中发挥了重要的作用,它有效地节省了程序员们的工作量(天地良心啊)。...下面的代码片段展示了如何初始化和显示一个带有“取消”和“好的”按钮的对话框视图。...Observer,我们通过在每个按钮动作的handler代码块(还有其他任何可能释放视图控制器的地方)中添加合适的代码来实现它。...不过您仍然可以在需要的时候以编程方式释放它,就像释放其他视图控制器一样。您应当在应用程序转至后台运行时移除对话框或者上拉菜单。

    60630

    VCTransitionsLibrary –自定义iOS交互式转场动画的库

    注意: 动画和交互是完全独立的,这意味着你可以在其他任何自定义控制器上独立使用交互控制器-很酷!...交互控制器和动画控制器配合使用,可以实现交互式的动画转场效果,比如可以让用户通过手势来控制页面间的导航.交互控制器允许用户在一个转场动画中前进,后退,甚至退出....模态控制器消失时的交互 UIViewControllerTransitioningDelegate 协议,也用来提供对交互式转场的支持.下面是一个结合清扫手势和翻页动画的例子: //实例变量,通常在你的初始化方法初始化它们..._interactionController : nil; } 出栈时的交互 UINavigationControllerDelegate 也有方法为交互式转场提供支持.一个典型的类似于上上面代码的模式..._interactionController : nil; } 用于标签栏控制器切换时的交互 UITabBarControllerDelegate 协议也为交互式转场提供了支持.但是由于代理方法在首次初始化时不被执行

    1.6K60

    Mac开发跬步积累(二):NSViewController 转场动画精耕细作

    图片来自网络 与iOS相比,在macOS中,控制器的转场情景相对要简洁一些,没有iOS中导航控制器的Push和Pop动画以及边缘返回手势, 保留下的Present方式,倒是提供了特有的切换方式, 可以供我们使用出许多效果...extension中提供了四个方法用来处理控制器之间的关系以及切换转场处理. 1....= nil) 0x01 : present 与 transition 在上面的系统提供的NSViewController四个方法中,可以分为present和transition两种方式: presentXXX...添加需要切换的子控制器: RedController 和BlueController 为自定义的两个控制器,仅显示不同的视图颜色....View)上进行点击操作,可能会触发容器视图中控件(比如按钮)的方法 解决办法: 给容器视图添加一层背景视图(自定义的NSView, 重写mouseDown方法即可),通过背景视图屏蔽鼠标操作,防止事件穿透到容器视图中

    2.8K40

    一篇可能会让你爱上MVVM与ReactiveCocoa的文章

    还是先说一下 MVVM的基础概念吧,不然没法往下说了: 第一个M,和MVC中的M基本一样.但是要求更轻量级.MVC中的M,你可以会放一些和原始数据不相关的推断出来的属性或者工具方法,如Person类,你可能给他写一个方法来根据原始数据年龄来判断是否有资格做某事...,也可以避免一些基础错误,如:自定义的类,如果属性不匹配会编译失败,但是如果使用字典类型,key不匹配时,是不会有任何提示的(用过字典的童鞋,都懂我意思的吧).所以我们此处要: 新增Model: YFCategoryArticleListModel....这里我采用的是一种折中的更具可行性的方案: 我对外暴露的接口是ViewModel,但是对应的会给这个ViewModel提供一个使用Model作为参数的便利初始化方法;控制器或模块内部,就直接使用传入的...添加初始化方法 -initWithArticleModel: 以便于从一个YFArticleModel对象构建视图模型....添加初始化方法 -initWithModel: 用于方便从一个 YFArticleModel 数据模型新建相应的视图模型.

    1.3K60

    ViewController及View的生命周期1. 起因2. Controller的生命周期3. View的生命周期4. 内存警告

    Controller的生命周期 系统提供了控制器从显示到消失的四个方法。 千万不要看到方法名中间出现了view就以为这是视图的方法。这些都是控制器的生命周期。...: isMovingFromParentViewController 会在viewWillDisappear & viewDidDisappear 方法内部调用这个方法判断视图控制器的视图的隐藏是否因为视图控制器从它的容器视图控制器移除...isBeingDismissed 会在viewWillDisappear & viewDidDisappear 方法内部调用这个方法判断视图控制器的视图的隐藏是否因为视图控制器被清退 (dismissed...调用时刻:每次访问Controller的View,当View为nil,就会调用loadView方法。...didMoveToSuperview:会通知相关视图他们的上级视图已经变化。添加和移除都会调用,所以要判断 superView在不在。

    1.5K30

    iOS翻页视图控制器UIPageViewController的应用

    iOS翻页视图控制器UIPageViewController的应用 一、引言     UIPageViewController是iOS中少见的动画视图控制器之一,通过它既可以创建类似UIScrollView...UIPageViewController把从DataSource中获取到的视图数据渲染给View用于当前视图控制器的展示。... 这个数据源方法返回的视图控制器为要显示视图的视图控制器 - (nullable UIViewController *)pageViewController:(UIPageViewController ...;     }else{         return _dataArray[index-1];     } } //翻页控制器进行向后翻页动作 这个数据源方法返回的视图控制器为要显示视图的视图控制器...//翻页视图控制器将要翻页时执行的方法 - (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers

    2.2K10

    Swift 中的状态建模

    这很可能会导致 bug 和我们最终处于未定义状态的情况。...作为一个例子,让我们来看看我们如何编写代码来更新视频播放器视图控制器中的一个动作按钮: class VideoPlayerViewController: UIViewController { var...我们有一个单一的数据源,而且没有未定义的状态 我们可以扩展我们的渲染方法,以便在我们的状态变化时自动执行所有的UI更新: func render() { renderActionButton(...然而,有时你需要做一些非常具体的事情,只影响到某个状态。比方说,我们想确保在我们的视图控制器离开屏幕时取消任何正在进行的下载任务。...要做到这一点,我们只需在Video上创建一个扩展,使用Swift的guard case let模式匹配语法来提取任何正在进行的下载任务。

    1.4K10

    KVO 正确使用姿势进阶及底层实现你要知道的KVC、KVO、Delegate、Notification都在这里

    能够上述需求的方法有很多,后面要讲的Delegate和Notification都可以实现,但都有各自的优缺点和适用场景,需要根据实际情况按需选择,但三者都很重要,在开发中都会使用。...,应与addObserver方法匹配 监听的属性路径为keyPath,应与addObserver方法的keyPath匹配 监听上下文context,应与addObserver方法的context匹配 *...接下来看下一个栗子: /* 本栗子需要使用三个UIViewController ViewController根视图控制器 DisplayViewController 父视图控制器 SubViewController...子视图控制器 ViewController不监听模型,包括一个按钮用于创建SubViewController并展示 DisplayViewController还是之前栗子的 SubViewController...setter和getter方法,执行willChangeValueForKey:和didChangeValueForKey:方法和父类的setter方法,并通知所有监听的对象,监听属性被修改了。

    1.6K80

    IOS开发系列——UIView专题之二:动画篇【整理,部分原创】

    UIView可以产生动画效果的变化包括: •位置变化:在屏幕上移动视图。 •大小变化:改变视图框架(frame)和边界。 •拉伸变化:改变视图内容的延展区域。...self.blueController =[[BlueViewController alloc] initWithNibName:nil bundle:nil]; //设置导航控制器view的大小占整个屏幕...context 一个可选的应用程序内容提供者。和beginAnimations:context:方法相同的参数。可以为空。 讨论 这个方法在动画块外没有任何效果。...cache 如果是YES,那么在开始和结束图片视图渲染一次并在动画中创建帧;否则,视图将会在每一帧都渲染。例如缓存,你不需要在视图转变中不停的更新,你只需要等到转换完成再去更新视图。...这个selector必须由和beginAnimations:context:方法相同的参数,一个任选的程序标识和内容。这些参数都可以是nil。 讨论 这个方法在动画块外没有任何作用。

    1.5K10

    Express告诉你什么叫MVC?

    前言如何设计一个程序的结构,这是一门专门的学问,叫做"架构模式"(architectural pattern),属于编程的方法论,VC模式就是架构模式的一种。...那什么叫做MVC 呢,其实MVC是 三个单词的简写,分别是 Model(模型) View(视图) Controller(控制器)分别解释一下View视图,很好理解就是直接面向用户的视图层,它是供给用户操作的界面...,是程序的外壳Model模型 是核心的数据层,也是程序需要操作的数据Controller 控制器层,介于视图和模型之间 负责根据用户从视图层的 输入操作,获取数据层(Model)中的数据,然后对其进行相应的操作...module.exports = sequelize新增model文件(orm数据库映射文件)对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术...业务流畅控制层最关键的部分来了,上面说道,Controller层是视图和模型之间的桥梁下面开始 Controller层的 创建首先创建个常量配置 根目录下 新建constant 目录 并在此目录下 创建

    24230

    iOS14开发-UIViewController

    介绍 UIViewController 可以理解为 App 的界面,负责管理 UIView 中显示的内容和用户的交互,主要有以下作用: 负责创建和管理 UIView。 响应用户与视图的交互。...响应设备的方向变化。 有一些特殊的视图控制器(导航控制器、标签栏控制器)可以更加方便和规范地管理 UIView。 创建 storyboard 初始化箭头指向的 UIViewController。...loadView方法 用于创建 UIViewController 的 view。 当 UIViewController 访问 view 时如果发现为 nil,就会调用 loadView 方法。...其他 UITableViewController:表视图控制器,集成了 UITableView 的视图控制器。...UICollectionViewController:集合视图控制器,集成了 UICollectionView 的视图控制器。

    2.4K20
    领券