- 博客(26)
- 收藏
- 关注
原创 如何提高App Store审核通过率
应用审核流程大体分为三部分:预审、机审和人工审核。1、预审:资源类审核,提交程序包时,对Icon、plist、图片等资源文件的审核,常见问题包括:图片格式(无alpha)、程序包文件等问题。2、机审:机器自动扫描审核,主要是对二进制文件、API等代码块的检查,常见的问题如:重复APP、热更新、私有api的使用等。3、人工审核:App体验式审核,主要对App的元数据、功能使用情况的审核。...
2019-11-11 15:29:25
1133
原创 扩大UIButton的响应区域--runtime
在日常开发中, 设计师有时候会设计一个看起来小小的按钮, 用户很难点击到这个按钮; 为了解决这个问题,简单粗暴的就是将 button 的 frame 放大, 分别调整button的 frame 和显示内容的 frame ,即麻烦,又显得怪异;如果我们使用 runtime 关联对象的方法对 button 进行扩展,去扩大 UIButton 的可交互区域,这样会更好一点 其执行原理为:OC中创建类...
2019-04-04 14:46:35
375
原创 原来Xcode 10里按住 option 点击控件窗口按钮,控件对象窗口就会常驻。还好这个tip知道的不算很晚。
原来Xcode 10里按住 option 点击控件窗口按钮,控件对象窗口就会常驻。还好这个tip知道的不算很晚。
2018-12-28 16:29:34
971
原创 performSelector、 NSTimer延时调用导致的内存泄露
performSelector关于内存管理的行原理是这样的执行 [self performSelector:@selector(method:) withObject:self.attribute afterDelay:3]; 的时候,系统会将attribute 的引用计数加1,执行完这个方法时,还会将attribute的引用计数减1,而这个延时执行函数可能会被多次调用的,有时切换场景时延时函数已...
2018-05-30 18:11:17
710
原创 提取assets.car中的图片 .car文件的解压
cartool,Mac下的命令行小工具,能够将Assets.car文件解包到指定文件夹。目标文件夹需要事先创建好。该工具使用私有API中的CoreUI进行开发。 下载地址:https://github.com/steventroughtonsmith/cartool./cartool xxx/xxx/Assets.car xxx/xxx/outputDir acextract,Mac下的命令行工具...
2018-03-26 15:15:41
2302
转载 iOS 开发是否要采用 React Native?
React Native 是 Facebook 2015年开源的 Javascript 框架,旨在使用 Javascript 高效开发手机端 App。配合着多个显而易见的优势和 Facebook 强大的宣传机器,它立刻成为国内外大小公司的明星开发框架。开源社区的参与激情、各方博客的宣传追捧,从其 Github 上 56000+ 星和 13000+ Fork 就可见一斑。对于 React Nat
2017-11-23 17:04:35
292
原创 Swift中的protocol
在ARC中,我们通常用weak关键字来修饰delegate,在delegate的实际对象被释放时,其就会被重置为nil,有效避免循环引用。在Swift中,我们当然也希望这么做。但是当我们尝试书写这样的代码的时候,编译器就会报错:protocol TestClassDelegate { func method()}class TestClass
2017-07-26 16:31:06
2394
原创 swift3.0 元组的用法
元组是我们的新朋友,多尝试使用这个新特性吧,会让生活轻松不少~用法一:比如交换输入,普通的写法是,func swapMe1 (a: inout T, b: inout T) { let temp = a a = b b = temp}但是如果用元组的话,就可以不使用额外空间就能完成交换
2017-06-20 14:55:27
421
原创 右滑手势返回效果失效处理
我们日常使用app时,已经习惯右滑返回这个效果,可是我发现我们的APP中这个功能失效了,只能点击左上角的返回按钮才能执行返回这个效果。后来查了一下发现,导致这个问题的原因是因为我们自己自定义了左上角的leftBarButtonItem,我们自定义了这个BarButtonItem使得系统不能捕获pop手势了。解决方法:创建一个UINavigationController的
2017-06-06 13:17:45
2119
转载 Swift 3.1 的一些新特性
推荐序本文来自泊学的投稿,介绍了 Swift 3.1 的新特性,感谢泊学授权发表。以下为文章正文。正文Apple终于发布了Xcode 8.3以及Swift 3.1。如果你没时间仔细通读一遍release note,至少,Swift 3.1中的一些新特性还是值得了解的,为此,我们特别制作了一个免费的内容系列。当然,Swift 3.1和Swift 3在源代码级别是兼容的,因此,
2017-03-31 20:34:04
1187
原创 高性能制作圆角图片
- (UIImage*)drawImageWithSize:(CGSize)size imageName:(NSString *)imageName{ // 申请一块特定大小的画布 UIGraphicsBeginImageContext(size); // 画出一个与画布等大的圆 UIBezierPath *path = [U
2017-02-07 13:34:36
392
转载 用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?
因为父类指针可以指向子类对象,使用 copy 的目的是为了让本对象的属性不受外界影响,使用 copy 无论给我传入是一个可变对象还是不可对象,我本身持有的就是一个不可变的副本.如果我们使用是 strong ,那么这个属性就有可能指向一个可变对象,如果这个可变对象在外部被修改了,那么会影响该属性.copy 此特质所表达的所属关系与 strong 类似。然而设置方法并不保留新值,而是将
2016-11-09 13:48:07
857
原创 @dynamic与@synthesize的区别
@property有两个对应的词,一个是@synthesize,一个是@dynamic。如果@synthesize和@dynamic都没写,那么默认的就是@syntheszie var = _var;@synthesize的语义是如果你没有手动实现setter方法和getter方法,那么编译器会自动为你加上这两个方法。@dynamic告诉编译器,属性的setter与getter方法
2016-11-09 13:41:42
514
翻译 @property (copy) NSMutableArray *array; 这个写法会出什么问题
我们先回忆一下copy属性的作用,一个属性如果标记了copy,当你调用其setter方法时,他会建立一个索引计数为1的对象,然后释放旧对象。@property (copy) NSMutableArray * a;NSMutableArray* b = [NSMutableArray array];a = b;等同于@property (strong) NSMutable
2016-11-09 10:47:58
2404
转载 iOS APP性能优化
1:应用启动时间 应用启动时,只加载启动相关的资源和必须在启动时加载的资源。2:本地图片加载方式 本地图片加载常用方法有两种: (1),[UIImage imageNamed:@""] 图片多次使用时使用,需要使用此方式加入缓存 (2),[[UIImage alloc] initWithContentsOfFile:@""] 图片不常使用时,不使用缓存3:不要阻塞主线程 开发中除了
2016-09-14 16:47:51
326
转载 那些好用的iOS开发工具
那些好用的iOS开发工具 发表于 2014-06-29 13:12文章目录1. 版权说明2. 前言3. 图形应用工具3.1. Charles3.2. 界面调试3.3. xScope3.4. ImageOptim3.5. 马克鳗4. 命令行工具4.1. CocoaPods4.2. nomad4.3. xctool4.4. appledoc5. Xcode
2016-07-07 14:52:40
589
转载 UIApplicationDelegate中常用的几个方法
本文的一些资料时参考(http://yanwt.iteye.com/blog/1933932) 另外本人也新增的一些常用的方法及加以编辑 本篇文章主要介绍一些UIApplicationDelegate中几个常用的回调方法的调用时机。 以帮助你判断哪些方法倒底放到哪个回调中去实现。/** * 此方法基本已经弃用,改用下面方法 * * @param application
2016-06-28 15:12:06
444
转载 iOS开发之静态库.a的制作教程
简介什么是库?库是程序代码的集合,是共享程序代码的一种方式根据源代码的公开情况,库可以分为 2 种类型开源库公开源代码,能看到具体实现比如 SDWebImage 、 AFNetworking闭源库不公开源代码,是经过编译后的二进制文件,看不到具体实现主要分为:静态库、动态库静态库和动态库静态库和动态库的存在形式静态库:
2016-06-24 10:50:46
338
转载 详解C语言中的宏定义
1. 防止一个头文件被重复包含 [cpp] view plain copy print?#ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2. 重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。
2016-06-23 10:29:59
4860
转载 UIBezierPath贝塞尔弧线常用方法记
//根据一个矩形画曲线+ (UIBezierPath *)bezierPathWithRect:(CGRect)rect//根据矩形框的内切圆画曲线+ (UIBezierPath *)bezierPathWithOvalInRect:(CGRect)rect//根据矩形画带圆角的曲线+ (UIBezierPath *)be
2016-06-18 22:40:48
287
转载 SVN XXX.xcode xcodeprojcannot be opened because the project file cannot beparsed。
当使用svn提交代码发生冲突时候,xcode工程文件会出现打不开的情况,出现这样的提示:XXX.xcode xcodeprojcannot be opened because the project file cannot beparsed。 因为.xcodeproj工程文件冲突了,然后还是会强制更新,内部文件出现了冲突,所以解析不了文件。解决方法如下: 1. 右键点击.xcode
2016-06-16 16:53:53
456
原创 UIScrollerView上AutoLayout的总结
一.查原因如下:我设置UIScrollerView的SubVIews中的控件的约束,是依靠他的SuperView(也就是UIScrollerView),但UIScrollerView的contentSize大小是依赖于UIScrollView 的subviews,这就相当于我指着他,他指着我,谁都是互相依赖二.正确的做法是:1.在要添加的UISCrollerView
2016-06-16 16:47:29
438
转载 iOS中的动画
iOS中的动画 Core Animation Core Animation是一组非常强大的动画处理API,使用它能做出非常绚丽的动画效果,而且往往是事半功倍,使用它需要添加QuartzCore .framework和引入对应的框架 .开发步骤: 1> 初始化一个动画对象(CAAnimation)并设置一些动画相关属性. 2> 添加动画
2016-06-16 16:33:40
269
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人