自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 flutter 仿哔哩哔哩,视频详情页面效果

flutter 仿B站,视频详情页面效果,需求:和B站一致;效果flutter 自带的SliverPersistentHeader在细节上并不能满足需求,本文讲述如何修改某个属性达到B站的效果;代码:CustomScrollView( slivers: [ MySliverPersistentHeader( isScroll: isPlay, delegate: MySliverDelegate()

2021-03-26 17:54:01 687

原创 flutter jenkins自动打包 mac环境(ios、android)本地配置

废话不多说,直接开搞!1、本地环境:mac、非mac环境不能打包ios,2、相信开始搞自动打包的时候,一些例如flutter sdk、android sdk 啥的都配置好了,并且配置好了,这里就不多讲了,3、使用brew安装jenkins----命令行安装----brew install jenkins-lts,耐心等待执行完毕,完毕后浏览器打开:http://localhost:8080/注意:初始密码在~/.jenkins/secrets/initialAdminPassword位置,建

2021-02-26 19:04:32 1569

转载 解决:Android Studio 之Cause: dl.google.com:443 failed to respond

我们已经设置了sock5代理或者其他代理,但是在Gradle build的时候出现以下情况:Android Studio 之Cause: dl.google.com:443 failed to respond解决方法:修改~/.gradle/gradle.properties (Mac)(windows在 C:\Users\Administrator.gradle\gradle.properties),把https的两行注释掉即可以Mac为例:打开终端命令:vi ~/.gradle/

2020-08-24 13:01:28 799

原创 mac 系统内存过大解决方案

mac电脑,系统内存占用了100多G,跟apple售后打电话,建议我格式化系统,怎么可能格式化系统,重要的文件、重新配置系统很麻烦的于是使用了 daisydisk mac磁盘清理工具,从任意渠道下载即可这个是需要收费的,可以用以下注册码姓名:Daniel Bolton序列号:NNAPDLXN-TCB4EQM8-AYPSVEHH-V8VZGUL6-L8G4JLTF激活时断...

2019-12-04 09:46:42 4241 2

原创 mac下安装flutter(开发工具Visual Studio Code)记录(用AS吧,功能全面)

mac下安装flutter(开发工具Visual Studio Code)记录1、先准备好sdkflutterSDK、dartSDK、vsCode2、配置环境变量打开终端:vim ~/.bash_profile,进入编辑模式输入 i 回撤红色框内的是需要添加的,蓝色框是下载的flutterSDK下的bin文件夹路径然后esc,输入:wq...

2019-07-22 16:26:22 1157

原创 iOS Xcode升级到10 遇见的问题

error: Multiple commands produce '/Users/wangrui/Library/Developer/Xcode/DerivedData/MOORs-cwmdhdlecxsfkccngftjrzrauguv/Build/Products/Debug-iphonesimulator/MOORs.app/README.md':1) Target 'MOORs' (p...

2018-09-19 09:51:24 980

原创 iOS实现两个APP之间共享文件(从一个App拷贝文件至另一个App)

直接上解决方案:在项目Info.plist文件中添加如图所示字段(红色框框里是表示所有文件类型都可拷贝)具体文件类型参考:Apple documentation到这一步还没完成:文件拷贝到咱们App了,咱们需要处理一下(要么存本地,要么直接预览)我的处理是存本地.上代码:- (BOOL)application:(UIApplication *)app openURL:(N...

2018-08-03 18:21:48 19090

原创 iOS_API编写问题:调用方法顺序问题

1.如何让别的开发者去有效的去使用你编写的api接口;遇见一个问题:假设有方法A与方法B,但是方法B的成功执行的条件是先执行方法A;但如何让别的开发者知道先执行A再执行B,有一个解决方法,就是写一个注释文档,但这不是最好的,今天忽然想起用协议的方式去解决这个问题,类似于UITableViewDataSource里的代理方法把方法B的set写进方法A中...

2018-05-22 10:43:40 390

原创 iOS 不规则按钮绘制及点击事件

上周公司有一个需求,要绘制不规则按钮。主要还是用到了贝塞尔。 下面直接上代码把:这个是自定义按钮;外层是一个绘制坐标数组类似与这样调用demo在github演示地址.写的不好,谅解。...

2018-05-14 11:19:26 1704

原创 iOS的基本小算法(打印字符串中字符的所有排列)

题目:输入一个字符串,打印出该字符串中字符的所有排列例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,驾驶室CBA状语从句。前几天一个朋友面试的时候遇到了一个这样的小算法,给我讲了下,我大致用OC和Swift写了一下,开始直接上代码吧。简单的递归解决OC:Swift:语言4.0写的不好,请见谅欢迎交流:QQ:838579111(请备注:iOS交流)...

2018-04-04 17:46:41 713

转载 Xcode 设置自定义背景图片

好久没发表新的 博客啦,有点不会写了.今天忽然想换一个xcode的背景颜色,于是谷歌了一下,分享给大家~~~使用XFunnyEditor插件使用方法:(1)、打开插件解压后的文件夹,打开XFunnyEditor.xcodeproj文件。(2)、运行程序,运行结束之后关闭Xcode,重新启动。(3)、Xcode的导航栏 选择Edit 最下方会有添加的插件,点击。注意:此时可能会没有,原因不是我们安装...

2018-02-27 09:12:11 5726 2

原创 iOS NSString空白字符替换不掉解决方案

进入正题string = [string stringByReplacingOccurrencesOfString:@" "withString:@""];这上面代码替换不掉空格的话说明那个字符串不是空格,而是换行符用下面的就可以了string = [string stringByReplacingOccurrencesOfString:@"\r"withString:

2017-08-10 14:51:48 925

原创 "_OBJC_CLASS_$_XXXXXXXXXX", referenced from:

最近做项目,在运行模拟器测试时,发现出现此类错误, 目前统计有两种原因可能会导致1,因为你的在building phases中没有引用相关的头文件,因此,只需要在building phase中添加对应的.m文件就可以了。2,把这个属性变为YES即可

2017-07-06 09:39:04 558

原创 iOS静态库SDK制作(包含支付宝支付、微信支付或其它第三方静态库)

前言以下所涉及的框架和库只针对iOS而言,不确保在其他平台也适用。最近由于公司业务需要,要求封装一个支付SDK,需要用到微信支付和支付宝,之前做过的Framework没有依赖其他第三方的库所以比较好做,这次有所不同;一开始我想把支付宝和微信支付的SDK全部融合进来,折腾一天才发现我之前的想法有很多误区,这样是根本行不通的,不过最后还是封装成功了,下面把我的经验分享出来,供有需要的同学少...

2017-05-09 10:53:18 1766 1

原创 iOS 让你的app 支持与itunes之间传输文稿

在info。plist文件里添加  Application supports iTunes file sharing   这个属性  设置为YES  即可

2016-10-13 11:51:05 2455

原创 从后台给一个时间值,返回几时几分几秒,总共6行代码

hellow,大家早上好,我对象公司有个需求,需要根据后台传回一个时间值,来在前端显示几时几分几秒,我闲暇之余封了一个,希望以后对大家有所帮助- (NSString *)time:(NSString *)sec{ NSInteger sec1 = [sec integerValue]; NSString *xiaoshiStr = (sec1/3600 == 0)

2016-08-17 10:02:27 1680

原创 ios setNeedsDisplay和setNeedsLayout的区别与用处

我们可能对这两个命令并不陌生,setNeedsDisplay调用drawRect方法来实现view的绘制,而setNeedsLayout则调用layoutSubView来实现view中subView的重新布局,问题是为何要如此设计呢,直接调用drawRect和layoutSubView不是更省事吗,何必多次一举呢。       假设我们采用的是直接调用drawRect的机制,先考虑这样一个

2016-08-08 16:24:57 438

转载 低版本XCode如何支持高版本iOS系统进行真机调试

在测试iOS app或者是开发过程中,总会遇到各种各样的升级,比如XCode的升级,MAC OS 的升级,iOS系统升级,这种种升级,个人比较讨厌的是iOS系统的升级,它总是在你调试代码或者是测试过程中给你弹出一个对话框,如下图:或许自己手抖一下,iPhone就开始默默的升级了。。。升级升吧,反正一会就装好了,待你升级到9.3.1,噩运也就开始了。当你拿着崭新的iOS系统去de

2016-05-09 10:09:44 8251

转载 iOS开发:音频播放、录音、视频播放、拍照、视频录制

http://ios.jobbole.com/84146/#comment-90313

2016-05-06 18:00:33 388

转载 在github上一些好的项目统计给大家

在 Github 上 Star 太多了,有时候很难找到自己想要的开源库,所以在此记录下来。便于自己开发使用,也顺便分享给大家。 动画awesome-ios-animation收集了iOS平台下比较主流炫酷的几款动画框架RCTRefreshControlqq的下拉刷新TBIconTransitionKiticon 的点击动画过渡效果PullTo

2016-05-06 10:15:37 7585

原创 瀑布流怎么理解和实现的

1、如果简单的来说,用三个tableView就可以实现瀑布流,3个tableView实现联动滚动2、其实最好的做法在scrollView上使用3个复用队列,如果一种一个cell超过屏幕,不能release,而是把它回收到复用队列中,如果要创建一个cell,首先从复用队列中取一个,然后使用。

2016-04-18 12:05:30 414

原创 解释TCP/IP协议

TCP/IP是网络开发中常见的传输协议,他传输和udp相比是可靠的。http是基于tcp/ip的主要用户互联网的协议,所谓可靠是tcp传输对方会给一个ACL信号(确认信号)tcp传输不如udp快,吞吐量不如udp大tcp是顺序的,udp是无序的tcp会保持连接,udp不会保持连接。

2016-04-18 12:01:21 568

原创 在项目什么时候选择使用GCD,什么时候选择NSOperation

项目中使用NSOperation的优点是NSOperation是对线程的高度抽象,在项目中使用它,会使项目的程序结构更好,子类化NSOperation的设计思路,是具有面向对象的优点(复用、封装),使得实现是多线程支持,而接口简单,建议在复杂项目中使用。项目中使用GCD的优点是GCD本身非常简单、易用,对于不复杂的多线程操作,会节省代码量,而Block参数的使用,会是代码更为易读,建议

2016-04-18 10:47:51 1058

原创 ASI原理是什么?请举例来说明你平时用的哪些文件?

ASI使用apple底层CFNetworking框架实现的,而不是用Socket套接字实现的。他是一个基于NSOperation(抽象类)的线程处理网络框架CFNetwork是基于InputSteam/Outstream流的方式管理数据,它内部使用了多线程异步模式进行数据的通讯,比如数据上传进度,下载进度,缓存的管理机制,大文件下载,大文件上传,安全机制。

2016-04-18 10:34:04 1953

原创 属性readwrite,readonly,assign,retain,copy,nonatomic各是什么作用,在哪种情况下用?

readwrite是可读可写特性;需要生成getter方法和setter方法时readonly是只读特性 只会生成getter方法 不会生成setter方法;不希望属性在类外改变assign是赋值特性,setter方法将传入参数赋值给实例变量;仅设置变量时;retain表示持有特性,setter方法将传入参数先保留,再赋值,传入参数的retaincount会+1

2016-04-18 10:09:56 471

原创 如何理解线程

1、iOS线程是为了界面流程,防止页面假死。比如解析一个大文件,比如一个地区的详情文件,解析时间比如是10秒,那么不用线程的话,界面就会假死、卡顿10秒左右。用户体验差,那么解决方法就是很快吧界面暂时启动线程去后台解析;2、再比如做图片滤镜,图像操作会耗费很多时间,比如5秒左右,界面就会假死;3、网络下载数据,用于网络状态好坏时间不确定,那么我们需要使用线程来处理这种不确定的关系,一定数据

2016-04-18 09:57:22 344

原创 谈谈Object-C的内存管理方式及过程?

1、当你使用new,alloc和copy方法创建一个对象时,该对象的保留计数器值为1,当你不再使用该对象时,你要负责向该对象发送一条release或autorelease消息,这样,该对象将在使用寿命结束时被销毁。2、当你通过任何其他方法获得一个对象时,则假设该对象的保留计数器值为1,而且已经被设置为自动释放,你不需要执行任何操作来确保该对象被清理,如果你打算在一段时间内拥有该对象,则

2016-04-17 11:30:48 1144

原创 block实现原理?

OC是对C语言的扩展,block的实现是基于指针和函数指针。从计算语言的发展,最早的goto,高级语言的指针,到面向对象语言的block,从机器的思维,一步步接近人的思维,以方便开发人员更为高效、直接的描述出现现实的逻辑(需求)使用实例cocoaTouch框架下动画效果的Block的调用使用typed声明blocktypedef void(^didFinishB

2016-04-17 11:25:13 336

原创 多线程与block

GCD与Block使用dispatch_async系列方法,可以以指定的方式执行blockGCD编程实例dispatch_async的完整定义void dispatch_async(dispatch_queue_t queue,dispatch_block_t block);功能:在指定的队列里提交一个异步执行的block,不阻塞当前线程

2016-04-17 10:52:50 405

原创 在项目什么时候选择使用GCD,什么时候选择NSOperation?

项目中使用NSOperation的优点是NSOperation是对线程的高度抽象,在项目中使用它,会使项目的程序结构更好,子类化NSOperation的设计思路,是具有面向对象的优点(复用、封装),使得实现是多线程支持,而接口简单,建议在复杂项目中使用。项目中使用GCD的优点是GCD本身非常简单、易用,对于不复杂的多线程操作,会节省代码量,而Block参数的使用,会是代码更为易读,建议

2016-04-17 10:21:25 1975

原创 远程推送详解

当服务器远程向APNS推送至一台离线的设备时,苹果服务器Qos组件会自动保留自焚最新的通知,等设备上线后,Qos将把推送发送到目标设备上远程推送的基本过程1、客户端的app需要将用户的UDID和app的bundleID发送给apns服务器,进行注册,apns

2016-04-16 19:07:12 1056

原创 @protocol和category中如何使用@property?

(1)在protocol中使用property只会生成setter和getter方法声明,我们使用属性的目的,是希望遵守我协议的对象能实现该属性。(2)category使用@property也是只会生成setter和getter方法的声明,如果我们真的需要给category增加属性的实现,需要借助于运行时的两个函数:1⃣️obj_setAssociatedObject2⃣️obj_ge

2016-04-16 11:48:26 2696

原创 Runtime详解

runtime简介OC中的runtime是一个运行时库(runtime Libarary),它是一个主要使用C和汇编写的库,为C添加了面向对象的能力并创造了OC。这就是说它在类信息(class information)中被加载,完成所有需要的结构体,让OC的面向对象编程变为可能。runtime详解OC是面向运行时的语言(runtime oriented language

2016-04-16 11:44:24 518

原创 深浅复制和属性为copy,strong值得变化问题?

浅复制:只复制指向对象的指针,而不复制引用对象本身。对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是一个指针,对象本身资源还是只有一份,那如果我们队A_copy执行了修改操作,那么发现A引用的对象同样被修改了。深复制就好理解了,内存中存在了两份独立对象本身。在Objective-C中并不是所有的对象都支持Copy,MutableCopy,遵守NSCopying

2016-04-16 11:19:16 556

原创 KVO,NSNotification,delegate及block区别?

KVO,NSNotification,delegate及block区别?KVO就是cocoa框架实现的观察者模式,一般同KVC搭配使用,通过KVO可以监测一个值得变化,比如View的高度变化。是一对多的关系,一个值得变化会通知所有的观察者。NSNotification是通知,也是一对多的使用场景。在某些情况下,KVO和NSNotification是一样的,都是状态变化之后告知对方。

2016-04-16 11:07:36 1220

原创 个人总结面试题

调用一个类的静态方法需不需要release?静态方法,就是类方法,不需要,类方法对象放在autorelease中。

2016-04-16 11:07:02 281

原创 static作用

(1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;(2)在模块内的static全局变量可以被模块内所用函数访问,但不能呗模块外其它函数访问;(3)在模块内的static函数只可呗这一模块内的其他函数调用,这个函数的使用范围被限制在声明它的模块内;(4)在类中的static成员变量属于整个类所拥有,对类的

2016-04-16 10:22:37 219

原创 GCD的一些原理

GCD核心概念1、将任务添加到队列,并且制定执行任务的函数、2、任务使用 block 封装      任务的 block 没有参数也没有返回值3、执行任务的函数      异步 dispatch_async              不用等待当前语句执行完毕,就可以执行下一条语句             会开启线程执行block任务             异步 是

2016-04-15 14:27:36 1462

原创 在工作中使用block遇到一些问题和新的认识

block本质          block的本质就是C语言的函数指针,本身就是代码块--特殊的匿名函数。同时block可以作为参数在方法和函数间传递数值,也可以作为方法和函数的返回值,经常在界面实现数值传递,用于异步和回传。          block经常使用的还是作为参数传值,最大的好处是可以在不同情况下回调不同的代码。block的内存管理       block在ARC环境

2016-04-15 13:59:44 585

原创 Masonry

1、Masonry使用心得:         Masonry是目前最流行的AutoLayout框架。         使用Masonry不需要设置控件的translatesAytoresizingMaskIntoConstraints的属性为NO。         使用Masonry添加兄弟控件约束不需要考虑父控件。     Masonry使用技巧:         定义以下两

2016-04-15 13:25:44 478

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除