- 博客(417)
- 资源 (10)
- 收藏
- 关注

原创 iOS编码
1.定义通知名字类名+xxxx+Notification在OC中定义在.m中,extern在.h中2.定义枚举名字类名+xxxx+style type...3.注释都在后边//xxxx4.setter写在后边
2016-05-06 16:37:13
414

原创 需要注意的东西记录
1 公共颜色分割线颜色导航条颜色2 字体大小可以通过一个算法生成大小,满足不同设备适配3 公共内容类分割线提示小圆点信息,根据半径生成4.1 判断函数输入参数空值情况4.2 使用对象参数时,查看文档看此属性是否为可选可能产生null值4.3 梳理清楚全部逻辑,考虑全面情况4.4 功能进行正常和异常测试4.5 整体测试,检查
2016-01-15 14:32:04
500

原创 博客
//查找collectionview contentOffsethttp://sjpsega.com/blog/2014/07/06/views-note/
2014-10-09 18:06:29
629

转载 正确使用Block避免Cycle Retain和Crash
http://tanqisen.github.io/blog/2013/04/19/gcd-block-cycle-retain/Block简介Block作为C语言的扩展,并不是高新技术,和其他语言的闭包或lambda表达式是一回事。需要注意的是由于Objective-C在iOS中不支持GC机制,使用Block必须自己管理内存,而内存管理正是使用Block坑最多的地方,错误的内存管理要
2014-09-18 14:00:37
487

转载 IOS开发---- IOS7官方推荐图标和图像尺寸
图标和图像大小每一个应用程序需要一个应用程序图标和启动图像。此外,一些应用程序需要自定义的图标来表示特定于应用程序的内容,功能,或在导航栏,工具栏和标签栏模式。不像其他的定制艺术品在您的应用程序的图标和图像,表38-1列出必须满足特定的标准,因此,IOS可以正确显示。此外,一些图标和图像文件的命名要求。(如果你需要支持标准分辨率的iPhone或iPodtouch设备,除以2下面列出
2014-09-10 09:54:00
579

转载 iOS应用开发最佳实践系列一:编写高质量的Objective-C代码
本文由海水的味道编译整理,转载请注明译者和出处,请勿用于商业用途!点标记语法属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问,其他的情况使用方括号标记语法。良好的风格:view.backgroundColor = [UIColor orangeColor];[UIApplication sharedApplication].delegate;不良
2014-09-04 15:11:58
824

转载 关键帧动画CAKeyframeAnimation
之所以叫做关键帧动画是因为,这个类可以实现,某一属性按照一串的数值进行动画,就好像制作动画的时候一帧一帧的制作一样。一般使用的时候 首先通过 animationWithKeyPath 方法 创建一个CAKeyframeAnimation实例, CAKeyframeAnimation 的一些比较重要的属性1. path这是一个 CGPathRef 对象,默认是空的,当我们创建
2014-08-28 13:49:24
475

转载 CABasicAnimation的基本使用方法(移动·旋转·放大·缩小)
博主:最近iOS开发中用到CoreAnimation的framework来做动画效果,虽然以前也用过,但一直没有系统学习过,今天看到一篇非常详细的博文(虽然是日语,但真的写的很好),在此翻译出来供大家学习。原帖地址:http://www.objectivec-iphone.com/animation/CoreAnimation/CABasicAnimation.html本文为博主翻译,若需
2014-08-25 18:06:13
541
原创 dijkstra模板
邻接矩阵法初始化dist数组, 出发点最短距离为0, 其余点为inf遍历n次, 查找最短距离点t用该点t, 去更新其他每个点的最短路const int N = 110;class Solution {public: int g[N][N], dist[N]; bool st[N]; int n; int dijkstra(int k) { // 先初始化 memset(dist, 0x3f, sizeof dist);
2022-05-14 09:17:12
229
1
原创 iOS项目集成RN
参考官方文档https://reactnative.cn/docs/integration-with-existing-apps/1. podfile编写参考文档2. 添加 App Transport Security 例外3. 运行packager崩溃:在appdelegate中集成window集成代码 NSURL *jsCodeLocation; ...
2020-01-05 22:33:35
797
原创 04双冒号作用域运算符
#define _CRT_SECURE_NO_WARNINGS我们在编译老的用C语言的开源项目如lua源包的时候,可能因为一些老的.c文件使用了strcpy,scanf等不安全的函数,而报警告和错误,而导致无法编译通过。在指定的源文件的开头定义:#define _CRT_SECURE_NO_WARNINGS (只会在该文件里起作用)在项目属性里设置,这会在整个项目里生效,依次选择:属性-...
2019-01-30 09:59:42
382
原创 YY_学习01
typeof 关键字是用来定义变量数据类型的在GNU C 中支持直接写 typeof() 或者 __typeof() 或者 __typeof__() iOS 使用Clang编译器,默认用的C语言版本是GNU99 ,并且允许'asm'inline''typeof'的选项设置为Yes。#define debug(format, args...) fprintf (stderr, format, arg...
2018-03-21 14:43:10
260
原创 TCP为什么是三次握手
https://www.zhihu.com/question/24853633【问题1】为什么连接的时候是三次握手,关闭的时候却是四次握手?答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报...
2018-03-20 14:59:18
264
原创 面试3
load和initialize共同点1.开发不主动调用情况下,系统最多调用1次2.父类和子类都被调用,父类调用一定在子类前load1.load方法不需要写明[super load] 父类就会收到调用, 并在子类之前initialize1.第一次主动使用当前类2.线程安全3.子类会把父类的实现继承过来调用一遍, 不需要调用superUIVIew和CALayer关系UIView是CALayer的del...
2018-03-19 17:32:33
264
原创 经典面试2
为什么要放在一起写?因为alloc和init有可能返回不同的对象层和UIView的区别是什么?图层不会直接渲染到屏幕上, UIView更像是一个CALayer的管理器, 一个UIView上可以有n个CALayer, 每个layer显示一种东西,增强UIView的展现能力pch文件的作用.pch来自外部框架的头文件列表, 减少在选择Build或Build and Go时编译项目的时间awakeFro...
2018-03-19 15:58:56
210
原创 能否添加实例变量, 手动触发KVO
能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?不能向编译后得到的类中增加实例变量能向运行时创建的类中添加实例变量编译后的类已经在runtime中,类结构的objc_ivar_list实例变量的链表和instance_size实例变量的内存大小已经确定,同时runtime也处理strong weak引用, 所以不能向存在的类中添加实例变量运行时创建的类是可以添加实例变量的,...
2018-03-19 10:48:53
499
原创 weak实现原理, 及内存管理原理
内存管理原理两张表1.引用计数表 (引用计数值, 是否为弱引用)2.引用地址表当对象将要被销毁时, 判断是否为弱引用, 有弱引用遍历弱引用地址列表设置为nil执行销毁操作 Runtime维护了一个weak表,用于存储指向某个对象的所有weak指针。weak表其实是一个hash(哈希)表,Key是所指对象的地址,Value是weak指针的地址(这个地址的值是所指对象指针的地址...
2018-03-14 15:23:14
712
原创 iOS消息转发
消息转发过程1.动态方法解析 @dynamic 实现setter getter声明, 动态添加一个方法resolveInstanceMethod:2.快速消息转发forwardingTargetForSelector:3.标准消息转发methodSignatureForSelector:forwardInvocation:- (NSMethodSignature *)methodSignature...
2018-03-14 15:11:04
383
原创 iOS中实现单例
在类的内部提供一个static修饰的全局变量static SingletonVC * _singletonVC;;提供一个类方法方便外界访问+ (instancetype)share;;重写initWithZone方法,保证永远只为单例分配一次存储空间。...
2018-03-14 14:17:32
541
原创 自动释放池
autorelease本质上就是延迟调用release方法autorelease对象什么时候释放?引用计数为0的时候才会释放, 不是出了pool就释放在一些很消耗内存的循环调用的场景下有时需要手动干预autoreleased对象的释放时机, 不然会导致内存暴增, 最终导致程序崩溃NSThread和NSRunLoop是一一对应的关系在NSRunLoop对象的每个运行循环开始前,系统会自动创建一个au...
2018-03-13 15:02:32
814
原创 __strong修饰符
在ARC环境下, 我们常常会使用weak的修饰符来修饰一个变量, 防止其在block中被循环引用, 但在特殊情况下,我们在block中又使用strong来修饰这个在block外刚刚用__weak修饰的变量在block中需要对weakSelf进行strong, 保证代码在执行到block中,self不会被释放, 当block执行完后, 会自动释放该strongSelf当加上修饰符strong时, 当...
2018-03-12 17:28:39
922
原创 字符串为什么使用copy不使用strong
NSMutableString * name = [[NSMutableString alloc] initWithString:@"xiaoming"]; Person * p = [Person new]; p.name = name; NSLog(@"name is %@", p.name); [name appendString:@"123"]; NS...
2018-03-12 10:40:11
392
原创 KVC KVO实现原理
KVO是Objective-C对观察者设计模式的一种实现指定一个被观察的对象, 当对象的某个属性发生改变时, 对象会获得通知当观察某对象A时, KVO机制动态创建一个对象A当前类的子类, 并为这个新的子类重写被观察属性keyPath的setter方法.setter方法随后负责通知观察对象属性的改变状况1. 被观察对象的isa指针从指向原来的A类,被KVO机制修改为指向系统新创建的_A类,来实现当前...
2018-03-12 10:07:20
398
原创 使用atomic一定是线程安全的吗
使用atomic一定是线程安全的吗atomic所说的线程安全只是能保证了getter和setter存取方法的线程安全@property(atomic, strong) NSMutableArray *arr;
2018-03-05 15:36:01
2038
原创 线程池
iOS下如何实现指定线程数目的线程池?线程? 线程池? - -||| 又是一脸懵逼?分析:NSThread NSOperation GCD可以把NSOperationQueue看做一个线程池, 可往线程池中添加NSOperation到队列中可以控制线程依赖, 可以控制线程池的并发数Dispatch Queue的内存管理...
2018-03-02 14:55:54
319
原创 锁
谈下iOS开发中知道的哪些锁? 哪个性能最差?SD和AFN使用的哪个? 一般开发中你最常用哪个? 哪个锁apple存在问题又是什么问题?iOS开发中11种锁以及性能对比Data race: 当至少有两个线程同时访问一个变量, 至少有一个是写操作时, 就发生Data race例: 两个线程同时执行counter++ 产生数据竟跑, 造成的最终值为1load [%counter], rax; // 线...
2018-03-02 11:43:52
233
原创 RunLoop2
- (void)threadTest{ NSLog(@"--%@--", [NSThread currentThread]); [[NSRunLoop currentRunLoop] addPort:[NSPort port] forMode:NSDefaultRunLoopMode]; [[NSRunLoop currentRunLoop] run];}一个线程对应一...
2018-02-28 17:51:53
192
原创 RunLoop
RunLoop作用:1.保持程序运行 2.处理app各种事件 3.节省cpu资源,提高性能两个API NSRunLoop CFRunLoopRefRunLoop与线程1.每条线程都有唯一的与之对应的RunLoop对象2.主线程的RunLoop已经创建好了,而子线程的需要手动创建.3.RunLoop在第一次获取时创建,在线程结束时销毁RunLoop相关类CFRunLoopRefCFRunLoopMo...
2018-02-28 11:17:11
219
原创 (javax/servlet/ServletContext&SpringServletContainerInitializer->javax.servlet.ServletContainerIniti
使用tomcat7插件的时候一直报这个错误, 查询了好多资料都是说servlet-api.jar冲突但是我新建的空工程还是出现这个问题,百思不得其解,后来发现一个问题就是新建的工程一般都会出现jsp错误,而我新建工程不会出现jsp错误,突然想起来是以前在jdk中添加过servlet-api这个jar所以出现的问题,删除就可以了方法一:点击窗口->首选项->java-
2017-10-19 16:31:59
397
转载 在 linux 中启动 tomcat是总报java.net.ConnectException: Connection refused 求高人解答
1.ps - ef |grep tomcat 查找tomcat的进程2.杀掉tomcat进程,命令: kill -9 进程名现象启动显示正常, 但是无法访问localhost:8080关闭tomcat出现错误
2017-10-13 16:21:52
3171
转载 程序包 javax.servlet 不存在 解决办法
出现以下问题:程序包 javax.servlet 不存在程序包 javax.servlet.http 不存在等问题。其原因是java编译器没有找到软件包javax.servlet。下载servlet.jar放到lib下没有效果,后发现需要在jdk中添加,如下:解决办法:从tomcat lib目录下拷贝一个servlet-api.jar的包到“JDK\jre\li
2017-10-13 11:04:29
2458
原创 [MyBatis]Invalid bound statement (not found)错误
使用maven分模块时候, xml文件不会被打包,会出现 [MyBatis]Invalid bound statement (not found)错误 解决方法http://www.cnblogs.com/oyx305/p/5340683.htmlbuild> ... plugins> ... 此pl
2017-09-01 17:36:22
320
原创 加载easyui中tree控件405问题
$(function(){ $('#tt').tree({ checkbox: true, url: '${ctx}/asset/tree_data1.json', method: 'get', onClick:function(node
2017-07-21 10:40:43
750
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人