侵掠如火 Object-C
文章平均质量分 64
追风舟
这个作者很懒,什么都没留下…
展开
-
iOS-底层知识解析->KVO
当被添加以后,系统会利用派生一个[NSKVONotifyin_Person]作为监听[Person]的子类。他的指针指向Person类,并且内部会重新对属性的方法重写。并且派生类中会重写监听属性的方法、重写class方法、重写dealloc方法和_isKVOA方法等。且方法内部会顺序调用方法,原来的方法、方法,而方法内部又会调用监听器的observeValueForKeyPath:ofObject:change:context:监听方法。如果只单单调用是不会生效,所有在该方法内部会有判断是否调用方法在先1:原创 2022-06-23 20:42:54 · 518 阅读 · 1 评论 -
isa指针
class的isa指向meta-classclass继承对象调用父类instance方法时的supercCassclass继承对象调用父类class方法时的supercCassinstance对象classmeta-classisaisaisa其他成员变量superclasssuperclasscol 3 is属性、对象方法、协议、成员变量类方法有些地方说的不到位,还请各位看官指正。。。可以来微信公众号(洲洲哥)后台给我们留言。 快来扫码关注我原创 2022-06-23 20:42:01 · 223 阅读 · 0 评论 -
objc_getClass和object_getClass
Class object_getClass(id obj)- (class)class、+(class)class有些地方说的不到位,还请各位看官指正。。。可以来微信公众号(洲洲哥)后台给我们留言。 快来扫码关注我们吧!原创 2022-06-23 20:41:25 · 319 阅读 · 0 评论 -
iOS用代码判断设备是否越狱
提供一个简单的方法,如果想要完美还找你越狱是安装的软件路径jay FreeMan为什么要查找Cydia.app,给看官想知道吗?有些地方说的不到位,还请各位看官指正。。。可以来微信公众号(洲洲哥)后台给我们留言。 快来扫码关注我们吧!...原创 2022-06-23 20:40:01 · 431 阅读 · 0 评论 -
iOS 错误 [UIWebView paste:]: unrecognized selector sent to instance
出现控件: 切记!!!那在什么场景中会出现这种情况呢?如果一个包含文字的输入元素有焦点,然后按钮的点击会导致输入失去焦点,然后接下来在输入时双按会重新得到焦点并从弹出bar中选择剪切复制粘贴,就会导致此error。也就是说当WebView页面中的HTML中有如下代码的时候即有输入框和按钮的时候,会出现 [UIWebView cut:]: unrecognized selector sent to instance 的错误风险简单的说就是若有一个WebView中有输入框,又有按钮的话,执行下面的操作就会出现原创 2022-06-23 20:39:15 · 266 阅读 · 0 评论 -
使用UICollectionView制作轮播图(一)
1:要把UICollectionView的视图横向展示2:把距离屏幕最近的那个item展示在最前面好吧今天就放到最步骤1的功能创建UICollectionView很简单,这里说一下和平常使用UICollectionView的区别看一下代码这里只改变了,设置UICollectionView的滑动方向其他没有变化##2:在创建UICollectionView时注意选择设置了横向滑动的Layout的文件####下期预告使用UICollectionView制作轮播图(二)把当前距离屏幕最近的item原创 2022-06-23 20:38:33 · 367 阅读 · 0 评论 -
iOS调用文件app(file.app)选择文件和下载
第三方应用调用系统文件app,并下载文件。###配置如下1:证书文件配置在Identifiers下创建你的iCloud Containers配置,点击“+”创建2:在Identifiers下选择你要添加icloud的boundid把icloud配置勾选上既可3:打开工程中的配置如下4:可选配置在info.plist中添加如下两个配置Supports opening documents in placeApplication supports iTunes file sharing结果都为YES原创 2022-06-23 20:37:42 · 2567 阅读 · 0 评论 -
【无标题】
objc所有类和对象都是c结构体,category当然也一样,下面是runtime中category的结构:注意,并不是category小括号里写的名字,而是类的名字要扩展的类对象,编译期间这个值是不会有的,在app被runtime加载时才会根据对应到类对象这个category所有的方法这个category所有的方法这个category实现的protocol,比较不常用在category里面实现协议,但是确实支持的这个category所有的property,这也是category里面可以定义属原创 2022-06-23 20:36:58 · 80 阅读 · 0 评论 -
对微信支付和支付宝支付SDK的封装
有提供的pod库提供使用,但是只提供了进行支付。但是想要在唤起的时候,无法获取。当然你在分享的时候想获取分享结果也是一个未知数。so,今天来解决一下.两平台处理方式基本一样3.1注册微信appid和遵循支付宝支付的网页支付结果的代理这里的是针对的回调结果。3.2唤起微信支付3.3 获取微信支付结果回调3.4 唤起支付宝支付3.5 唤起支付宝支付回调结果3.6 支付结果统一回调3.7 支付回调代理函数这里的有针对微信支付回调结果返回时.注意3.3步骤里的block。大概原因:由于两个block加原创 2022-06-23 20:35:54 · 305 阅读 · 0 评论 -
使用 ionic开发-页面跳转
用ionic开发就要有页面之间的跳转和返回下面就上代码1:首先要注入'$state'跳转代码如下$state.go('detail', {id: index});注意这里的'detail'就是我们在启动文件里设置的state里case信息,后面的id就是需要传入的值2:页面之间的返回首先注入$ionicHistory返回代码如下$ionicHistory...原创 2016-12-21 14:53:15 · 1700 阅读 · 0 评论 -
__attribute__ 高级运用
,用于修饰一个变量(对象),在它的作用域结束时可以自动执行一个指定的方法1:对于Class对象2:对于NSString对象高级用法1:既然可以用来修饰变量,当然也是其中之一一块搞一个2:写一个实例如下2.1:创建一个类在中如下定义在如如下2.2:调用如下2.3:打印如下可以看出在dealloc之前调用该方法1* 作用域结束时可以自动执行一个指定的方法2* 指定一个cleanup方法,要注意传入的参数修饰变量的地址,并且类型要一样。并且对于指向Objc对象的指针(id *),如果不强制声原创 2022-06-23 20:34:07 · 343 阅读 · 0 评论 -
制作cocoapods私有库遇见的问题
最近在制作cocoapod的,发现 , ,。都没问题但是最后出现了这个问题你会发现, 或者 都会提示这个解决办法按住啊commamd + shift + G然后输入~/Users/zzg/.cocoapods/repos到repos下把对应的的工程给删除即可...原创 2022-06-22 22:36:46 · 161 阅读 · 0 评论 -
自定义辅助视图accessoryview
自定义辅助视图accessoryview原创 2022-06-22 22:35:55 · 143 阅读 · 0 评论 -
NSProxy
吾尝以为是Apple的所有Objective-C引用类型的老祖宗,直到后来知道了的存在…和平级,彼此没有继承关系;唯一的相同点是它们都遵循。尚未在开发中使用过,最近琢磨需求开发的方案时注意到了这个类的存在,有不少疑问,譬如存在的意义是什么?如何使用它呢?本文将疑惑记录下来,并尝试自我解惑。是一个抽象类,它实现了所要求的基本方法,譬如内省相关的、派发消息相关的performSelector系列方法等;但是不能直接使用它创建对象。子类化的要求也很简单,实现和这两个方法即可;显然,这两个方法与消息转发相关,实现这原创 2022-06-22 22:34:47 · 847 阅读 · 1 评论 -
iOS制作支付宝支付SDK
git下载地址pod 下载地址1:配置工程文件3:支付回调支付的api太low了,SDK都升级了,你的api能升级一下吗?原创 2022-06-22 22:33:37 · 381 阅读 · 0 评论 -
iOS制作微信(weChat)支付SDK过程
Git下载地址微信支付可支付的demo已经做成组件在cocoapods里可以搜索1:下载微信支付demo,把以前几个文件摘出来2:设置info.plist允许http访问App Transport Security SettingsAllow Arbitrary Loads :YES设置URL Types3:接入微信支付appdelegate4:支付回调5:唤起微信支付......原创 2022-06-22 22:32:46 · 1055 阅读 · 0 评论 -
iOS制作银联支付SDK过程
银联支付SDK下载地址git下载地址选择手机控件下载即可,下载包中含有对应的开发文档和demo本文记录主要讲把银联支付做成cocoapods组件供各位看官方便使用。大家现在可以搜索配置UnionPaySDK.podspec文件直接上podspec文件,主要配置请看注释在配置该podspec文件时要注意UPPaymentControl.h放入class文件夹libPaymentControl.a放入frameworks文件夹如图注意:一.........原创 2022-06-22 22:31:57 · 456 阅读 · 0 评论 -
数据库升级问题总计(一)
数据库升级问题总计(一)1:概念篇在iOS技术应用开发中,数据库我们常用:比如FMDB、coredata、最新还出了一个数据存储的 技术具体叫什么名字我后期加上。现在忘了。顺便再这里问大家一句:这个FMDB和coredata有什么区别?我个人觉得出了苹果提供给的coredata的api、自生的多线程不安全外,其他的还真没什么区别这里请大家正确理解数据库升级和升级sqllite。 正常情况第一版发布数据库版本就已经构建。但我们在第二版发布的时.........原创 2022-06-22 22:30:00 · 477 阅读 · 0 评论 -
上传自己的私有的(公共的)CocoaPods支持库
上传自己的CocoaPods支持库1:在git上创建自己工程(此处省略n个字)2:如果各位看官已经上传过自己的cocoapods的就可直接跳到:步骤6,看3:开始注册用户上传信息然后注册的邮箱就会收到一个邮件,查看邮箱复制链接地址,放到浏览器中浏览一下。。。此处稍微等几分钟,才能进行下一步。。。4:查看用户上传信息5:创建文件(用户可以直接复制,格式不变)6:创建Pod项目工程当我们需要自定义一个组件的时候,可以用CocoaPods提供的一个命令来创建,相应的命令如下:$ pod lib creat原创 2022-06-22 22:19:20 · 434 阅读 · 0 评论 -
20171023-iOS开发-面试小计(一)
1: 本质是什么?一般都会说谁申请,谁负责释放。这句话没错。但是问的本质是什么? 这里先说说的本质:是编译器在编译的时候主动加了内存管理的代码,那么他是如何管理的尼?那这代码是怎么管理的? 是不是在有一个,把对应的变量和引用计数放进去,然后在过了引用域之后,会把引用计数。 但是对象会被释放。2:在执行之前,修改变量,在block里面获取的是变量什么时候的值?用有什么用毫无疑问的是,变量的最后一次赋值的数据。 首先block是分配到栈区的。必须先使用copy。 所以他的作用域就是在你创建的当前上下文,当你原创 2022-06-08 15:43:03 · 69 阅读 · 0 评论 -
iOS在纯代码中使用AutoLayout添加约束
约束是苹果官方给定得约束信息。对于这个约束和延展的用法类似,不过加上了延展之后,不用写VFL语言下面先看看以实现的效果为例我们讲解一下下面开始上代码以用户名和密码为例,来说说,在这里有两点必须说明:1:在对控件allo的时候我们一定忘掉设置他得CGRectMake2:也是重中之重的,不然会导致严重的性能问题,一定要对当前控件的的属性设置为NO,不然无法使用。。。首先看看这两个约束的方法这里有两个方法,一个是添加的数组,一个添加属性约束,我们在用VFL约束的时候,一定要是用的约束方法名。。。。下面原创 2022-06-08 15:42:17 · 265 阅读 · 0 评论 -
iOS11适配iPhoneX总结
屏幕尺寸相关变化高度增加了145pt,变成812pt.状态栏高度由20pt变成44pt,留意这个距离就能避开“刘海”的尴尬,相应的导航栏以上变化64->88。底部工具栏需要为home indicator留出34pt边距。物理分辨率为1125px * 2436px.启动图的适配通过LaunchScreen.storyboard方式启动如果启动图原来使用的Assets中的LaunchImage给Brand Assets添加一张1125*2436大小的图片打开Assets.xcassets文件夹,找到Br原创 2022-06-08 15:41:28 · 319 阅读 · 0 评论 -
利用多个Target来管理不同版本
有些时候需要有正式、测试、灰度等环境。解决办法一:添加一个数据源切换功能咯。看起来很高大上。看起来也不为一个好的办法。(切换逻辑要写好)看看最装逼的方法(个人绝对没有方法一的方便)解决办法二:1:创建项目2:点击左边boundle的项目,右边会出现PROJECT和TARGET如图:3:开始创建测试 版本 的TARGET右键第一项如图:点击第一项出现如图对话框,点击如图:点击之后如图搞完了看起来名字好low4:修改新增TARGET名字在上图勾选上的两项,直接双击修改即可4.1 点击工程原创 2022-06-08 15:37:15 · 142 阅读 · 0 评论 -
mac安装browser-async终极流程
安装browser-async官网教程有人问我开发网页在mac上用什么工具能发布网页快速浏览。不像我们在windows上有VS就自带了了。今天就说说在mac上使用该功能。这个功能牛逼的地方就是,开启了browser之后只要你浏览你的地址,你的每次保存就是自动刷新,自动同步。好像网上都没有正确的教程,其实看我的这个文章就可以了。安装流程如下:1:下载node.js并安装2:首先在硬盘上创建一个文件夹(你随意创建)3:cd 到这个文件夹4:sudo npm init -y 生成package.json文原创 2022-06-08 15:35:01 · 171 阅读 · 0 评论 -
iOS-Charles使用调试功能,增加逼格
开发app最烦的就是调试接口,接口顺利心情还挺好,要是不顺利,我就一句话,我去年买了个表!!!然后各种的锅就由移动端来背了。f-u-c-k!!!于是乎,Charles就给我们提供了一个很大的方便暴力一点说就是劫持网络请求,替换你的返回内容。1:打开charles选中Tools—>Map local Settings2:点击Add 按钮下面的网络请求替换为例1.Protocol:这里的Protocol就是选择你的http或者https了。2.Host:写你要替换的网络请求域名或地址了。3.Port原创 2022-06-22 22:19:28 · 164 阅读 · 0 评论 -
iOS-Charles使用调试功能,增加逼格
开发app最烦的就是调试接口,接口顺利心情还挺好,要是不顺利,我就一句话,我去年买了个表!!!然后各种的锅就由移动端来背了。f-u-c-k!!!于是乎,Charles就给我们提供了一个很大的方便暴力一点说就是劫持网络请求,替换你的返回内容。1:打开charles选中Tools—>Map local Settings2:点击Add 按钮下面的网络请求替换为例1.Protocol:这里的Protocol就是选择你的http或者https了。2.Host:写你要替换的网络请求域名或地址了。3.Port原创 2022-06-08 15:31:29 · 208 阅读 · 0 评论 -
iOS[谓词]NSPredicate的使用
关于谓词,在iOS上是苹果官方提供,在android上官方是不提供的,但是有一些第三方是已经实现的。###1.先看看和他类似的SQL语句吧写过T-SQL的朋友应该都熟悉,不管你是用的SQL SERVER…这句话的意思就是查询person表中,name为的所有信息。这里这个就是我们数据库中的表名。那如果我们在iOS中要这样查询该怎么写呢?别急,,,看为你解疑答惑。###2: iOS中使用谓词查询数组内容如果你要使用就不一样了。,,实例化一个谓词-----关......原创 2022-06-08 15:30:35 · 238 阅读 · 0 评论 -
Block与函数指针有什么区别
Block就是一个代码块,但是它的神奇之处在于在内联(inline)执行的时候(这和C++很像)还可以传递参数。同时block本身也可以被作为参数在方法和函数间传递,这就给予了block无限的可能。第一个区别,函数指针是对一个函数地址的引用,这个函数在编译的时候就已经确定了。而block是一个函数对象,是在程序运行过程中产生的。在一个作用域中生成的block对象分配在栈(stack)上,和其他所有分配在栈上的对象一样,离开这个作用域,就不存在了。Block允许开发者在两个对象之间将任意的语句......原创 2022-06-08 15:29:00 · 199 阅读 · 0 评论 -
iOS-webView加载视屏横向全屏播放(video)
项目搞到这个时候,就有点费劲了。只要你看了洲洲哥的这个文章就木事的啦。demo地址:https://github.com/7General/shouldAutorotate情况描述iOS中vc里放了一个webview这个webview里加载一个连接h5。这个h5中有一个video和一些其他的标签。当让这里的video标签才是重要的。要求:在点击视屏播放的时候,改视屏要...原创 2016-12-21 14:46:44 · 7391 阅读 · 0 评论 -
iOS-重力感应
iOS-重力感应话不多说,开始上代码(这里是最新的)1.导入头文件#import 2.定义变量@property (nonatomic, strong) CMMotionManager *motionManager;3.实例化-(CMMotionManager *)motionManager { if (_motionManager == nil)...原创 2016-12-21 14:48:03 · 986 阅读 · 0 评论 -
iOS-静默方式发送邮件(SKPSMTPMessage)
洲洲哥学院,静默方式发送邮件,发送邮件原创 2016-12-21 14:50:38 · 1660 阅读 · 0 评论 -
iOS延迟启动图并且控制他的消失
洲洲哥学院,延迟加载,启动图原创 2016-12-21 14:55:49 · 2576 阅读 · 0 评论 -
iOS和JS交互(含OC、html、js)代码不使用第三方库(二)
洲洲哥学院,ios和h5交互原创 2016-12-21 15:01:36 · 1363 阅读 · 0 评论 -
iOS深入了解ReactiveCocoa的使用(二)
洲洲哥学院,ios开发,信号原创 2016-12-21 15:02:39 · 804 阅读 · 0 评论 -
iOS--洲洲哥教你制作QQ聊天小水滴
UIImage * CharacterBtnImage = [UIImage imageNamed:@"whiteBack"]; CharacterBtnImage = [CharacterBtnImage stretchableImageWithLeftCapWidth:CharacterBtnImage.size.width * 0.5 topCapHeight:CharacterBtn原创 2017-01-04 10:47:18 · 761 阅读 · 0 评论 -
iOS-加载webview,打印网页的console.log
iOS开发的时候,用webview加载一个网页。问题就是我们想看输入的日志调试东西的时候,但是网页端的日志只能打开safari开发中心调试了。于是乎有这样一个方法就可以看见h5端输出的日志- (void)catchJsLog{ if(DEBUG){ JSContext *ctx = [self.webView valueForKeyPath:@"document...原创 2016-12-21 14:45:12 · 11157 阅读 · 0 评论 -
iOS-创建9宫格代码
- (void)rankWithTotalColumns:(int)totalColumns andWithAppW:(int)appW andWithAppH:(int)appH{ //总列数 int _totalColumns = totalColumns; //view尺寸 CGFloat _appW = appW; CGFloat _appH = a原创 2016-12-21 14:41:43 · 897 阅读 · 0 评论 -
Swift中出现 use of undeclared type ***Delegate错误的解决方法
出现这种错误可能因为类名跟函数名冲突,特别是在出现代理的时候,这个错误,你会发现真的很难找,只要不是会用代理就没问题,一调用代理就提示你找不到use of undeclared type ***Delegate这问题。为什么说头疼,Swift调用OC的,oc的代码都是好好都是按照格式来的,没问题。Swift中你写的也对,绝对没问题。哎。。。例如#import @class...原创 2016-12-21 14:40:56 · 5170 阅读 · 0 评论 -
三分钟学会使用Git——命令行(一)
这是一个简易的Git提交步骤1:检查你的提交的分支有没有出现,一般情况下都是有的git branch -a2:提交所有修改的文件。git add *3:查看是否添加正确git status4:提交你修改的文件,并且附属上说明内容git commit -a -m “填写你的修改文档”5:提交到服务器git push*记住一定是在...原创 2016-12-21 14:39:56 · 474 阅读 · 0 评论 -
iOS中内存初级管理
1:内存的管理方式 在ios中可能会遇见(MRC)和(ARC)的两种管理方式. MRC:使用的人群可能是一些老程序员,应为他们觉得比arc更安全好用.(⼈人⼯工引⽤用计数)ARC:是基于MRC的一种管理方式(⾃自动引⽤用计数)OC采⽤用引⽤用计数机制管理内存,当⼀一个新的引⽤用指向对象时,引⽤用计数器就递增,当去掉⼀一个引⽤用时,引⽤用计数...原创 2015-07-07 19:53:45 · 446 阅读 · 0 评论