Objective-C中的类目(Category),延展(Extension),协议(Protocol)这些名词看起来挺牛的,瞬间感觉OC好高大上。...一.Objective-C中的类目(Category) 在Objective-C比其他OOP的编程语言多了个类目,在OC中除了用继承来扩充类的功能函数外我们还可以用类目来实现。...二.Objective-C中的延展(Extension) 简单的说匿名类目就是延展,在延展中定义的方法是类私有的方法只能在类的内部调用,定义延展的方式就是把类目中括号中得名字省略掉,括号保留这就是延展...把类中常用的方法抽象成OC中得协议,协议中只有方法的声明没有方法的实现,在protocol中可以把方法定义成@required(必须的):在使用协议的类中如果不实现@required的方法,编译器不会报错但会给出警告... 测试代码: 1 2 3 4 5 6 7 //测试协议对象 AddClass *add = [AddClass new]; //往protocol对象中的calculator方法中传入符合协议的
下面详细的介绍Objective-C中的集合类以及每个集合类的用法,学过其他面向对象编程语言的小伙伴们看到OC的集合类会有种莫名的亲切感,理解起来问题不大,可以类比Java中的集合类去学习...在Objective-C中的集合类中主要包括不可变的数组--NSArray, 可变的数组--NSMutableArray, 不可变的字典--NSDictionary, 可变的字典--NSMutableDictionary...,必须先把数据类型转换成对象,然后再存入集合类中。...OC中的集合类中是不能放基本数据类型的,那么我们如何把基本数据类型封装成对象呢?...在OC中给我们提供啦一个类专门来把基本数据类型封装成对象,这个类就是NSNumber. 1.
UITraitEnvironment 是iOS8以后才引入的新的协议接口,它和Size Class有关,这个类封装了像水平和竖直方向的Size Class等信息,iOS8的UIKit中大多数UI的基础类...UIContentContainer 是iOS8之后添加的新的协议,也是和Size Class相关的协议。该协议中的方法可以帮助你适配视图控制器上的内容,比如内容尺寸和位置等。...你可以重写loadView或者其他超类中的方法,但是如果你这样做, 你必须确保在你实现的方法中使用super调用了超类中相应的方法。...:(UICollectionView *)collectionView { return 1; } (2) 返回每个Section中Cell个数的方法 Objective-C - (NSInteger...return 30; } (3) 通过Cell重用标示符来选择和重用Cell Objective-C - (UICollectionViewCell *)collectionView:(UICollectionView
的大小边距,headerView的大小已经FooterView的大小,都是在UICollectionViewDelegateFlowLayout的相应协议的方法来实现的。...接下来详细的介绍一下UICollectionViewDelegateFlowLayout协议中的方法。...Objective-C #pragma mark /** * 改变Cell的尺寸 */ - (CGSize)collectionView: (UICollectionView...Objective-C /** * headerView的大小 */ - (CGSize)collectionView: (UICollectionView *)collectionView...,具体信息请看下方代码实现: Objective-C /** * Cell将要出现的时候调用该方法 */ - (void)collectionView:(UICollectionView
Objective-C中NSArray类的解读 NSArray数组类是Objective-C语言中常用的也是重要的一个类,除了开发中常用到的一些基础功能,NSArray及其相关类中还封装了许多更加强大的功能...有机会总结了一下,与需要的朋友们分享。...参数为C数组的长度 //如果cnt的值小于C数组的长度,则会对C数据进行截取赋值,如果大于则程序会崩溃 - (instancetype)initWithObjects:(const ObjectType...usingBlock:(void (^)(ObjectType obj, NSUInteger idx, BOOL *stop))block NS_AVAILABLE(10_6, 4_0); //通过遍历的方式查找符合条件的元素下标...passingTest:(BOOL (^)(ObjectType obj, NSUInteger idx, BOOL *stop))predicate NS_AVAILABLE(10_6, 4_0); //通过遍历的方式查找所有符合条件的元素下标
背景 公司最近的业务大量涉及安可项目,要求避免使用第三方组件,原有开发框架支持本地文件存储/Minio/各类云存储,现在要求文件独立存储且文件服务需要自研,经调研评估后决定基于SpringBoot开发文件存储服务...,使用s3协议标准,这样可以直接使用aws-sdk接入无需再开发客户端,且安全安全性方面可以得到足够的保证(签名验证部分参考我的博文《Java实现AWS S3 V4 Authorization自定义验证...gitee.com/code2roc/local-s3 运行jar包,默认信息如下 api地址:http://localhost:8001/s3 用户名:admin 密码:abcd@1234 概述 s3协议无标准说明文档...,为rest风格,创建/删除/详情方法通过PUT/DELETE/HEAD表述 很多方法共用一个路由,通过head参数区分(例如putObject和copyObject) 参考aws的最新api文档:https...Key ID:填写配置文件中的username Secret Access Key:填写配置文件中的password 去除SSL选项 配置签名 在编辑连接页面点击左下角Advanced S3 Compatible
背景公司最近的业务大量涉及安可项目,要求避免使用第三方组件,原有开发框架支持本地文件存储/Minio/各类云存储,现在要求文件独立存储且文件服务需要自研,经调研评估后决定基于SpringBoot开发文件存储服务...,使用s3协议标准,这样可以直接使用aws-sdk接入无需再开发客户端,且安全安全性方面可以得到足够的保证(签名验证部分参考我的博文《Java实现AWS S3 V4 Authorization自定义验证...https://gitee.com/code2roc/local-s3运行jar包,默认信息如下api地址:http://localhost:8001/s3用户名:admin密码:abcd@1234概述s3协议无标准说明文档...,为rest风格,创建/删除/详情方法通过PUT/DELETE/HEAD表述很多方法共用一个路由,通过head参数区分(例如putObject和copyObject)参考aws的最新api文档:https...ID:填写配置文件中的usernameSecret Access Key:填写配置文件中的password去除SSL选项图片配置签名在编辑连接页面点击左下角Advanced S3 Compatible
测试参数 通讯协议:Modbus RTU协议 主从关系:1主4从 主站通讯接口:Rs485接口(两线制) 从站通讯接口:模拟量4-20mA信号输入(AI) 供电:9-24VDC 传输距离:100米,500...主站接线说明 第一步:用一根红色导线将触摸屏Rs485端口的7脚与DTD433MC的A端口相连接;用另一根黑色导线将触摸屏Rs485端口的8脚与DTD433MC的B端口相连接 第二步:给无线通讯终端接入天线...第三步:全部接线结束后,分别给触摸屏与无线通讯终端供电 四、实现触摸屏与模拟量的无线Modbus通讯 给DTD433FC接入模拟量信号发生器,触发一个4-20mA信号,触摸屏界面上对应的绿色条形框里就会显示相应的数值...五、485无线传输模块——DTD433M/DTD433F 图片22.png DTD433F无线MODBUS测控终端产品模拟量信号无线485传输模块是针对工业级用户,采用MODBUS RTU协议,并以无线串口通信方式代替有线...所有从机的地址都是唯一的,不会存在从机间互相干扰的情况。 详情方案+QQ 598075900
项目中,有时需要通过特定的字符寻找特定的类,如mybatis,可以通过适配符寻找要扫描的目录。...我们自己也可以通过适配符寻找到自己想要的类,具体代码如下: /** * 通过包名获取class * * @author starmaark * @version 2018年4月12日 下午5:55...>> findPathMatchingResources(String locationPattern) { // 第一个class类的集合 Set<Class<?...className)); } } }catch (Exception e){ log.error("寻找符合条件的包失败
UICollectionView之所以强大,是因为其具有自定义功能,这一自定义就不得了啦,自由度非常大,定制的高,所以功能也是灰常强大的。本篇博客就不使用自带的流式布局了,我们要自定义一个瀑布流。...UICollectionView的自定义功能就是自己去实现UICollectionViewLayout的子类,然后重写相应的方法来实现Cell的布局,先介绍一下需要重写的方法,然后再此方法上进行应用实现上述瀑布流...Objective-C // UICollectionView calls these four methods to determine the layout information. // Implement...我们需要在UICollectionViewLayout的子类中实现相应的布局方法,因为UICollectionViewLayout是虚基类,是不能直接被实例化的,所以我们需要新建一个布局类,这个布局类继承自...在该函数中具体调用的函数如下所示: Objective-C #pragma mark -- 虚基类中重写的方法 /** * 该方法是预加载layout, 只会被执行一次 */
,注意:在obj-C中,定义一个类通常分成二部分,一部分是".h"的文件,用来申明类有哪些成员(也称为类的定义文件,类似于接口),另一部分是".m"的文件,用来提供具体实现 Shape类的申明部分如下:...ShapeRect) bounds; - (void) draw; - (NSString*) getColorName:(ShapeColor) fillColor; @end //Shape Shape类的实现部分如下...bounds.x,bounds.y,bounds.width,bounds.height,[super getColorName:fillColor]); } @end 注:上面展示了在obj-C中如何调用父类的方法...,在obj-C中id相当于“任意类型”,意为指向某对象的指针(哪怕你不知道这个对象是什么类型),总之,如果你不知道某对象的具体类型时,用它就对了。...同时我们也看到了,创建一个类的实例用“[类 new]”来完成。 最后附上文件结构图:
今天博客中,我们就来实现一下一些常用资讯类App中常用的分类选择的控件的封装。...当然下方的效果是一些资讯类App中选择分类时,常用的部分。主要还是对UICollectionView的使用。当然,下方效果的实现,网上也不乏相应的实例。...稍后我们会给出该协议中所以对应的内容。 DataSourceTools类中的createDataSource()类方法就负责创建我们需要的测试数据。...下方的MeteData类就是我们要在上述控件测Cell中显示的数据。该类实现了CEThemeDataSourceProtocal协议,并给出了menuItemName()的方法实现。...如果Cell符合我们的要求,我们就调用UICollectionView的beginInteractiveMovementForItem()方法来启动移动Item功能。
在今天这篇博客中我们要接着上篇博客中的Demo,使其自定义布局的属性在使用它的UICollectionView中是可配置的。...如果想使用该布局文件,你需要为我们的UICollectionView来指定该布局文件,在本篇博客中的Demo中是在Storyboard中进行自定义布局文件的指定的,你也可以通过代码的方式指定,再次不做过多的赘述...代理即可,代码如下: Objective-C _customeLayout = (CustomeCollectionViewLayout *) self.collectionViewLayout;..._customeLayout.layoutDelegate = self; 2.实现CustomeCollectionViewLayoutDelegate中的方法 需要在UICollectionView...你可以通过这些方法去设定cell的列数,Cell的外边距,Cell的最小高度,Cell的最大高度,如下所示: Objective-C #pragma mark - (NSInteger) numberOfColumnWithCollectionView
设置横屏2、viewWillDisappear 设置竖屏 5、用法简单:采用block回调电子签名图片 UICollectionView的自适应案例详解:【商品详情页】(核心原理:按照图片的原宽高比例进行显示图片全部内容...3、核心原理 : 3.1)按照图片的原来宽高比进行缩 3.2)UICollectionView的高度自适应 II 蓝牙打印商品价格标签、交易小票 【打印商品价格标签及打印交易小票】demo源码:https...tabBar,以及购物券类app的首页tabBar 3、特色功能:在更新数据期间旋转tabbar的icon blink https://blink.csdn.net/details/1175811 VI...1、iOS《用户协议及隐私政策》弹框(包含超链接属性)【本文包含完整demo源码,demo支持中英文切换】 2、UICollectionView的自适应案例详解:【商品详情页】(核心原理:按照图片的原宽高比例进行显示图片全部内容...5、我已加入CSDN内容合伙人计划,亲爱的各位粉丝,可以添加我的CSDN官方微信号,和我近距离互动聊天,为您答疑解惑 #公众号:iOS逆向 CSDN认证博客专家 Swift SwiftUI Objective-C
RDP协议的推荐3种:https://docs.microsoft.com/zh-cn/windows-server/remote/remote-desktop-services/clients/remote-desktop-clientshttps...://www.parallels.cn/products/ras/download/client/https://jumpdesktop.com/类RDP协议的2种:①向日葵(百度百科介绍说“向日葵采用独有的远程桌面协议...sunlogin.oray.com/download/ (server、client端软件相同)②anydeskhttps://anydesk.com/zhs/downloads (server、client端软件相同)非RDP协议的推荐...QQ快捷登录,RDP协议不兼容QQ快捷登录最好用的手机远程软件,非jump desktop莫属这里贴一个jump desktop的apk,手机远程windows服务器的工具很多,最好用的是jump desktop...,没有之一,鸿蒙、安卓均可,市面上的安卓版本均可大而全的跨平台远程软件,非RDM(Remote Desktop Manager)莫属https://help.remotedesktopmanager.com
说明:这个Objective-C专题,是学习iOS开发的前奏,也为了让有面向对象语言开发经验的程序员,能够快速上手Objective-C。...如果你还没有编程经验,或者对Objective-C、iOS开发不感兴趣,请忽略。学习本专题之前,建议先学习C语言专题。 OC是一门面向对象的语言,因此它也有类、对象、静态\动态方法、成员变量的概念。...这讲就来创建第一个OC的类。...二、用Xcode创建第一个OC的类 1.右击项目文件夹或者文件,选择"New File" ? 2.选择Cocoa的"Objective-C class" ? 3.输入类名和选择父类 ?...* Student.h是类的声明文件,Student.m是类的实现文件 * 默认情况下,这2个文件的文件名跟类名一致 * 编译器只会编译.m文件,并不会编译.h文件 三、第一个类的代码解析 1.Student.h
ios-charts - 一款优秀 Android 图表开源库 MPAndroidChart 的 Swift 语言实现版(支持 Objective-C 和 Swift 调用)。...缺省提供的示例代码为 Objective-C。 TEAChart - xhacker/TEAChart 一个简洁的 iOS 图表库,支持柱状图、饼图以及日历等。...XLForm - 很多表格类的table,写法更高冷一点,推荐使用。...SwipeViewController.swift - 一款好用的页面滑动和标签选项卡类库及示例。...功能相当于 Objective-C 版 RKSwipeBetweenViewControllers。 RKSwipeBetweenViewControllers - 页面滑动和标签选项卡类库。
避免多个UICollectionView 在一个View中 ?...如果你在一个页面中创建了多个 UICollectionView 它们使用一套代理方法,也许在每个代理方法中你对当前的UICollectionView 做了判断,使用了不用的数据源,可是你会发现还是有莫名其妙的...正确的做法是: 如上图的效果,自定义一个包含一个Label 一个UICollectionView的视图,创建两个对象即可,这样可避免多个UICollectionView使用一套代理协议造成的莫名其妙的...Bool和bool 的不同之处 OC 中的BOOL 实际上是一种对带符号的字符类型(signed char)的类型定义(typedef),它使用8位的存储空间。...注意:objective-c 并不会将BOOL作为仅能保存YES或NO值的真正布尔类型来处理。编译器仍将BOOL认作8位二进制数,YES 和 NO 值只是在习惯上的一种理解。
UICollectionViewCell是单元格类,它的布局是由UICollectionViewLayout类定义的,它是一个抽象类。...UICollectionViewFlowLayout类是UICollectionViewLayout类的子类,对于复杂的布局,可以自定义UICollectionViewLayout类。...UICollectionView对应的控制器是UICollectionViewController类。...; 是否显示水平方向的滚动条:showsHorizontalScrollIndicator; 是否允许多选:allowsMultipleSelection; #####数据源与委托协议 集合视图的委托协议是...委托协议UICollectionViewDelegate提供的常用方法如下: //返回这个UICollectionView是否可以被选择 -(BOOL)collectionView:(UICollectionView
本篇文章探讨一下python中的几个概念:协议 、鸭子类型 、 抽象基类 、混入类。 一、协议 在python中,协议是一个或一组方法。...例如,Python 的序列协议包含 len 和 getitem 两个方法, 上下文管理器协议包含 enter 和 exit 两个方法(前者参见文章 《一文读懂python可迭代对象、迭代器和生成器》,后者参见文章...二、鸭子类型(duck typing) 多态的一种形式,在这种形式中,对象的类型无关紧要,只要实现了特定的协议即可。...示例1 中Eg1类 实现了 len 和 getitem两个方法,也就是实现了序列协议,那么它的表现就和序列类似。...print(issubclass(Cat, Animal)) 输出: True 这种通过注册和抽象基类关联起来的类叫做虚拟子类,虚拟子类不会继承注册的抽象基类,而且任何时候都不会检查它是否符合抽象基类的接口
领取专属 10元无门槛券
手把手带您无忧上云