iOS 用protocol 和 用继承小体会】的更多相关文章

最近写程序时,2个类都有相同的函数,又因为在用oc,所以就用了protocol来实现.后来发现其实这2个类除了相同的函数,还需要一些相同的变量,当初用继承的话会更简单.…
ES6继承小实例 一.总结 一句话总结: js中的类和继承可以多用es6里面的,和其它后端语言的使用方法一样 class Animal { constructor(name) { this.name = name; } say() { console.log('我是'+this.name); } } class Bird extends Animal { constructor(name, age) { super(name); this.age = age; } fly() { console…
[385][scrollView不接受点击事件,是因为事件传递失败] // // MyScrollView.m // Created by beyond on 15/6/6. // Copyright (c) 2015年 beyond.com All rights reserved. // 不一定要用继承,可以使用分类 #import MyScrollView.h #import CoView.h @implementation MyScrollView - (void)touchesBegan…
今天看了一下xib里的一些小技巧,但是百度一搜的话,网上已经有人写过教程了,在这里我也就懒一下,不写那么详细了,就写一些如何百度的方法! 1."通过KVC修改占位文字的颜色" [textField1 setValue:[UIColor greenColor] forKeyPath:@"_placeholderLabel.textColor"]; 2.如何在xib中设置圆角(ios xib设置圆角) layer.masksToBounds layer.cornerRa…
1.关于代理对象的设计小技巧 在设计一个类,需要通过代理和协议来从外部获取需要的动态的数据.那么在这里设计使用代理会有两种方法. <第一种方法> 也是比较常见的: 在你设计的类中,声明一个代理属性 然后外部使用的时候 最后根据那个<...Protocol>协议,去遵循这个协议并实现协议的方法. <第二种方法>在创建这个你要设计的类对象的构造方法中添加一个代理对象的参数,目的就是按照需要,你如果要创建这个对象,你必须添加代理对象. 这样外部在创建这个对象的时候,使用这个方…
本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再将零散的知识点整理出来.这样的学习方法会带来更多的收获,同时要多做练习,按照思路,默写.改写代码.在这里,感谢欧阳坚老师,学习你的课程使我走上了ios的开发之路. 一定要明确一个要从事的方向,要不然就会感到迷茫.学习ios开发,并且从事ios开发这个行业,这就是我的选择.看到我的博客系列文章,其中大…
本文个人原创,转载请注明出处,谢谢. 前段时间项目要求需要在聊天模块中加入类似微信的小视频功能,这边博客主要是为了总结遇到的问题和解决方法,希望能够对有同样需求的朋友有所帮助. 效果预览: 这里先罗列遇到的主要问题: 视频剪裁  微信的小视频只是取了摄像头获取的一部分画面 滚动预览的卡顿问题  AVPlayer播放视频在滚动中会出现很卡的问题 接下来让我们一步步来实现. Part 1 实现视频录制 1.录制类WKMovieRecorder实现 创建一个录制类WKMovieRecorder,负责视…
继承.多态.类别 学习目标 1.继承的含义 2.父类子类的别称 3.字段和消息的继承 4.重写和重写消息的调用 5.多态 6.类别(Category) ============================================= 1.需要理解的知识 面向对象的三个基本特征:   1.封装 2.继承 3.多态 1.继承(单继承):    父类(超类)和子类的关系. 继承的两个类,存在父子关系. OC支持单继承,不支持多继承. 1.1 生活中的继承 人(父类) --  男人/女人(子类…
定义一个协议, 一个协议可以扩展子另一个协议 如果需要扩展多个协议中间使用逗号分隔 //定义一个协议 @protocol AnimalDelegate <NSObject, ***> @required //必须实现的方法 -(void)eat; @optional //可选实现的方法 -(void)run; -(void)say; -(void)sleep; @end 和其他高级语言中接口不同的是协议中定义的方法不一定是必须实现的. 我们可以通过关键字进行@required和@optiona…
整理自:IOS 整体框架类图值得收藏 一 整体框架 在iOS开发过程中,对iOS的整理框架的了解和学习是必不可少的一个环节,今天我们就好好来了解一下iOS的整体框架.首先贴一个关于iOS的框架介绍:iOS系统框架概述.我们通常称呼iOS的框架为Cocoa Touch框架,Cocoa Touch是一个框架的集合,里面包含了众多的子框架.每一个子框架都是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像.声音文件等其他资源,共享资源库定义应用程序可以调用的函数和方法.框架中的…
一.继承与重写, 防止重写 1.1 基类, 不继承任何类. Swift不想OC或者Java中继承自Object类.定义一个类,不继承任何类,该类就是基类. [java] view plaincopy class Person1{   //这个Person1就是基类 func eat(){ println("eat a pig!") } } 1.2 继承. Swift为单继承 [java] view plaincopy class XiaoMing1 : Person1{ var nam…
背景介绍 由于iOS系统的限制,在非越狱的自动化测试中无法实现一些常用的功能,比如不同应用之间来回切换.模拟全局的点击事件等等.但是在越狱的环境下,这些限制就不存在了,我们可以利用各种小插件来实现我们想要的自动化测试的功能,今天就给大家介绍一款插件,通过这款插件可以实现从安装.卸载应用的自动化过程. IPA Installer Console — 安装ipa 首先介绍IPA Installer Console工具,顾名思义,就是通过命令行的方式安装一个ipa包,当然它可不是只能安装应用这么简单,…
因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替.Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法.也就是说,它只告诉你要做什么,但具体怎么做,它不关心. 当一个类要使用某一个Protocol(协议)时,都必须要遵守协议.比如有些必要实现的方法,你没有去实现,那么编译器就会报警告,来提醒你没有遵守××协议.注意,我这里说的是警告,而不是错误.对的,就算你不实现那些“必要实现”的方法,程序也是能运行的,只不过多了些警告. Protoco…
在iOS开发过程中,有时候须要弹出软键盘进行输入,有时候又须要在某些情况下隐藏软键盘,以提高用户体验. 今天有几个关于软键盘的小技巧和大家分享. (1)仅仅弹出数字键盘 有某些需求中,要求用户仅仅能在Text Field中仅仅能输入数字,这须要怎么做呢?能够写一个正則表達式用于推断用户输入:或者进行字符匹配等等. 可是这都要写代码.程序猿都是爱偷懒的.在iOS中能够通过简单设置,使弹出为数字键盘,这样用户输入就仅仅能为数字了. 选中某个Text Field.选择右側的Show the Attri…
1.打开iOS项目 如果你当前目录下既有project又有workspace,你可以在终端使用命令“xed.”自动打开workspace,如果只有project,它会自动打开project. 2.清理无用的模拟器或者支持文件 当你使用了Xcode 几年后,你会发现Xcode附带的文件越来越大,这个时候你可以使用命令“xcrun simctl delete unavailable”去删除一些不再支持的模拟器. 3.开启编译时间查看功能 如果你想知道你的项目编译完成需要多久时间,可以使用如下命令:…
# -*- coding: utf-8 -*- """ 继承的意义:实现代码重用,数据函数都可以重用 子类覆盖,子类与父类同名 选择性继承 super().__init__()可以减少重复构造,节约资源 """ class Wangjianlin(object): """大家好,我是大连王健林""" def __init__(self): self.motto = "我是王健林…
引言   前面的章节学完已经让我们可以顺利实现一个小组件了,但是小组件里面的数据如何刷新的呢,本节内容将讲解IOS的刷新机制. 大纲 系统如何管理小组件刷新 Timeline刷新机制 Timeline刷新机制代码实现 刷新策略建议 时钟刷新策略(只有小时分钟,没有秒) 主动请求重新刷新 系统如何管理小组件刷新 WidgetKit在一个单独的进程中渲染小组件视图 即使小组件窗口显示在屏幕上,widget extension 也不会持续处于活动状态 为了管理系统负载,WidgetKit使用预算来分配…
继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系:在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性:  实现 指的是一个class类实现interface接口(可以是多个)的功能:实现是类与接口之间最常见的关系:在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性…
function human(name,tall){ this.name=name; this.tall=tall; this.toSleep=function(){ alert('no sleep'); } } human.prototype.toSleep=function(){ alert('sleep'); } var meimei=new human("meimei",160); var xiaoqiang=new human("xiaoqiang",17…
面向对象的三大特性:封装,继承,多态. 1.继承 继承既能保证类的完整,又能简化代码. 把公共的⽅法和实例变量写在⽗类⾥,⼦类只需要写⾃⼰独有的实例变量和⽅法即可. 继承是⾯向对象三⼤特性之⼀,合理的继承,能减少很多冗余代码,加快开发速度. 1> 继承的特点: 继承的上层:父类,继承的下层:子类. 继承的内容:所有实例变量和方法. 继承是单向的,不能相互继承. 继承具有传递性:A继承与B,B继承与C,A具有B和C的特征和行为. 如果子类不满意父类方法的实现,可以重写(overwrite)父类的方…
由于以前就已经搭建好了java jdk的运行环境这里就不多说了,不过这几天看了一篇博客才明白jdk变量环境设置的某些要义,不在是人云亦云而不知其所以然. 其博客的地址:http://www.cnblogs.com/zoupeiyang/p/4034517.html 知道了一个应用程序的安装目录位置,我们也可以通过命令行工具打开,他那里用的是qq例子进行解说的,例如QQ的位置为:C:\Program Files (x86)\Tencent\QQ\QQProtect\Bin,QQ的应用程序名为为QQ…
一.继承 1.面向对象的三大特性:封装,继承,多态.      面向对象提供了继承特性.把公共的方法和实例变量写在父类里,子类只需要写自己独有的实例变量和方法即可.继承既能保证类的完整,又能简化代码.: 表示继承关系. 2.继承的特点:      1)没有父类的类称为根类,OC中的根类是NSObject(祖宗).      2)继承的上层:父类.继承的下层:子类.      3)继承的内容:所有实例变量和方法(不包括私有的).      4)继承是单向的,不能相互继承.      5)继承具有传…
国庆即将来到,一个小项目也即将完成,把自己在项目中用的一些小技巧写出来,方便查找. 1,去掉分割线--动画设置透明度alpha //去掉tableView的分隔线:     self.tableView.separatorStyle=UITableViewCellSeparatorStyleNone;     self.tableView.showsVerticalScrollIndicator=NO;   2. 解决cell分割线左边短20px的问题 -(void)viewDidLayoutS…
protocol ['prəutəkɔl] (样例:http://blog.sina.com.cn/s/blog_6aafe9c90100yozz.html ) 一.说明  两个类进行通讯,用协议就比較方便.  1.协议声明了能够被不论什么类实现的方法  2.协议不是类,它是定义了一个其它对象能够实现的接口  3.假设在某个类中实现了协议中的某个方法,也就是这个类实现了那个协议.  4.协议经经常使用来实现托付对象.一个托付对象是一种用来协同或者代表其它对象的特殊对象.  5:托付,就是调用自定…
1.什么是protocol? protocol(协议)是用来定义对象的属性和行为,用于回调. 2.protocol分类? 协议中有三个修饰关键字@required和@optional和@property. 3.三个修饰关键字的作用 被@required修饰的方法为必须实现的方法: 被@optional修饰的方法为可选实现的方法: @property用于修饰属性. 一.定义一个protocol 新建文件的时候不要选择objective-c Class:而要选择objective-c protoco…
一.实用工具 1.支付助手3.0(新) (扫一扫.微信扫码.微信收款.支付宝扫码.Apple Pay.AA付款.查快递.蚂蚁森林.蚂蚁庄园.彩票.股票.运动.淘票票.乘车码.生活缴费.火车票等等): https://www.icloud.com/shortcuts/45c64b77d773411485eb1c697f36cd8c 2.微博热搜榜: https://www.icloud.com/shortcuts/13c9b1f7cdbc434bbec2b28e577746ce 3.新浪微博: h…
iOS8有了新方法,用新方法后,用7.0版本运行会奔溃.只要加一句判断就ok: #ifdef __IPHONE_8_0 // 在 iOS 8 下注册苹果推送,申请推送权限. UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge |UIUserNotificationTypeSound |UIUserNotificationTy…
iOS去除api过期警告提示…
公司组织Scrum培训. 虽然是针对ScrumMaster这个角色的培训,但更多是基于对Scrum这个敏捷开发实践方法的了解. 回来也有一些感想,记录下来.以后在工作实践中,继续探索.实践.体验.感悟. 个人体会 在很多传统软件公司,面对常年的“技术债”项目,并没有更多的创新空间,以及跨地域的各个独立的职能开发部门,也许无法立刻转型到Scrum. 而且从管理学角度,传统的所谓“臃肿”管理方法,秉持着“存在过即合理过”的原则,试图分析两者在各个管理points上的优劣势. 主要纲要 1. Scru…
在我啃了一遍书本之后,开始了在慕课看视频的过程,从最开始的HTML+CSS的基础课程看起,在第5-9小节讲到了form表单的label标签, 首先看一下慕课的讲解:  label 标签不会向用户呈现任何特殊效果,它的作用是为鼠标用户改进了可用性.如果你在 label 标签内点击文本,就会触发此控件.就是说,当用户单击选中该label标签时,浏览器就会自动将焦点转到和标签相关的表单控件上(就自动选中和该 label标签相关连的表单控件上).然后她提到了一个特别注意: 注意:标签的 for 属性中的…