iOS开发
文章平均质量分 92
JoesRain_机器学习算法_CVer
这个作者很懒,什么都没留下…
展开
-
巧用iOS宏定义
__attribute__((used,section...)) 把某个变量的放入特殊的section中用法:char *kChinaPYG __attribute((used, section("__DATA, ChinaPYG"))) = "ChinaPYG.CoM";char *kDllHook __attribute((used, section("__DATA, DllHook"))) = "DllHook.CoM";使用 used字段,即使没有任何引用,在Release下也不会被优化.原创 2020-09-29 16:35:07 · 330 阅读 · 0 评论 -
swift 进程间通知和对象指针转换,定义错误码描述
//定义进程间通知回调let callback:CFNotificationCallback = {(_,_,_,rawPointer,_) in let error = NSError(domain: "closeBroadcast", code: 0, userInfo: nil) //指针转对象 let sample = Unmanaged<SampleHandler>.fromOpaque(rawPointer!).takeUnretainedValue().原创 2020-07-27 10:36:07 · 388 阅读 · 0 评论 -
iOS 下的MVVMDemo的架构 DEMO
MVVM应用在iOS的Demo,主要通过经典的TableView来演示阅读 4718收藏 932015-6-29coderyi9 推荐:MVVM来自微软,是一个相当不错的架构模式。原文链接:https://github.com/coderyi/MVVMDemoMVVM在iOS应用的Demo,主要通过经典的TableView来演示MVVM来自微软,是一个相转载 2016-05-25 17:43:28 · 5058 阅读 · 2 评论 -
IOS 非常流畅的滑动tableView
为什么要写这篇文章呢?之前写过一篇,因为手机打字不是很方便,还有之前同事用6splus 定下午茶时候,我滑动列表时候竟然误以为是安卓系统的手机。 tableview 流畅度可以用fps来测试,到60帧说明你优化tableView 已经很有经验了。如下图怎么测试接下来从哪方面入手来优化呢?优化tableView主要有两个思路。缓存操作和异步操作。转载 2016-05-25 17:45:42 · 547 阅读 · 0 评论 -
iOS富文本组件的实现—DTCoreText源码解析 渲染篇
上一篇介绍了 DTCoreText 怎样把HTML+CSS解析转换成NSAttributeString,本篇接着看看怎样把NSAttributeString渲染出来。CoreText先简单介绍下CoreText,CoreText是iOS/OSX里的文字渲染引擎,在iOS/OSX上看到的所有文字在底层都是由CoreText去渲染。CoreText会把一行里连在一起相同转载 2016-05-25 17:47:54 · 1723 阅读 · 0 评论 -
iOS-MVVM-框架介绍
我于 2011 年在 500px 找到自己的第一份 iOS 开发工作。虽然我已经在大学里做了好几年 iOS 外包开发,但这才是我的一个真正的 iOS 开发工作。我被作为唯一的 iOS 开发者被招聘去实现拥有漂亮设计的 iPad 应用。在短短七周里,我们就发布了 1.0 并持续迭代,添加了更多特性,但从本质上,代码库也变得更加复杂了。有时我感觉就像我不知道在做什么。虽然我知道自己的设计模式—转载 2016-05-25 17:55:39 · 409 阅读 · 0 评论 -
基于面向协议MVP模式下的软件设计-(iOS篇)
基于面向协议MVP模式下的软件设计-(iOS篇)传统模式下的开发MVCMVVM基于面向协议MVP的介绍MVP实战开发说在前面:相信就算你是个iOS新手也应该听说过MVC的,MVC是构建iOS App的标准模板。随着时间的推移,在iOS平台上MVC也逐渐开始面临着越来越多的问题,最近又开始流行MVVM,MVVM使由MVC衍生而来,MVVM作为一种新的开发模式和响应式编程相转载 2016-05-25 17:58:46 · 503 阅读 · 0 评论 -
effective objective-c 2.0 笔记 第三章 :接口与API设计
目录结构:1.用前缀避免命名空间冲突2.提供全能初始化方法3.实现description方法4.尽量使用不可变对象5.使用清晰而协调的命名方式6.为私有方法名加前缀7.理解objective-c错误模型8.理解nscopying协议选择公司,应用程序或者两者有关联的名字作为类名的前缀,若自己所开发的程序库用到了第三方库,则应为其中的名称加上前缀。尽量原创 2016-05-15 11:03:18 · 495 阅读 · 0 评论 -
effective objective-c 2.0 笔记 第二章 :对象,消息,运行期
目录结构:1.了解属性这一概念2.在对象内部尽量直接访问实例变量3.理解对象等同性这一概念4.以类族模式隐藏实现细节5.在即有类中使用关联对象存放自定义数据6.理解objc_msgSend的作用7.理解消息转发机制8.用方法调配技术调试黑盒方法9.理解类对象的用意详细内容梳理:1.objective c通常会把所需要的数据保存为各种实例变量。实例原创 2016-05-15 08:07:12 · 416 阅读 · 0 评论 -
effective objective-c 2.0 笔记 第一章 :熟悉Objective-C
目录结构:第一章 :熟悉Objective-C1.了解objective-c的起源2.在类的头文件中尽量少引用其他头文件3.多用字面量语法,少用与之等价的方法4.原创 2016-05-13 23:53:46 · 398 阅读 · 0 评论 -
【iOS】配置和使用静态库
一、合并静态库lipo –create Release-iphoneos/libsqlcipher.a Release-iphonesimulator/libsqlcipher.a –output libsqlcipher.a 合并后的.a库就可以通用了 二、配置工程库路径 配置路径和编译参数后xcode会自动找到路径下的库引入到项目 1、转载 2016-05-15 08:39:44 · 494 阅读 · 0 评论 -
如何生成,加密,安装企业版描述文件
1.如何生成用代码生成mobileconfig文件啊。具体生成的内容如下: PayloadContent PayloadContent DefaultsData apns apn test proxyPort原创 2016-05-13 17:01:25 · 3953 阅读 · 0 评论 -
iOS 开源项目2
作者:李富强链接:http://www.zhihu.com/question/22914651/answer/25123025来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。我个人觉得类似UI效果的东西,就不需要自己去整理记录了,推荐几个网站:1. Code4App,这个网站刚起步的时候我基本不上,习惯于自己使用书签整理,不过后来发现里转载 2016-05-02 23:21:50 · 688 阅读 · 0 评论 -
CAEAGLLayer
当iOS要处理高性能图形绘制,必要时就是OpenGL。应该说它应该是最后的杀手锏,至少对于非游戏的应用来说是的。因为相比Core Animation和UIkit框架,它不可思议地复杂。OpenGL提供了Core Animation的基础,它是底层的C接口,直接和iPhone,iPad的硬件通信,极少地抽象出来的方法。OpenGL没有对象或是图层的继承概念。它只是简单地处理三角形。OpenGL中转载 2016-05-12 16:29:44 · 4479 阅读 · 0 评论 -
iOS 开源项目list
UI界面类项目:Panoramagl —— 720全景展示Panorama viewer library for iPhone, iPad and iPod touch MBProgressHUD —— 进度指示一种优雅的,半透明的进度显示效果。同时还提供了其他附加功能,比如显示完成信息并淡出。iCarousel —— 效果很酷的分页排列转载 2016-05-02 23:07:54 · 1077 阅读 · 0 评论 -
10个惊艳的Swift单行代码
原文出处:http://www.cocoachina.com/swift/20160429/16051.html几年前,一篇表述“10个Scala函数式单行代码”的文章非常受欢迎,并且随后立马出现了其他的语言版本,例如Haskell版本,Ruby版本,Groovy版本,Clojure版本,Python版本,C#版本,F#版本,CoffeeScript版本等。我们不知道有多少人真转载 2016-05-02 22:53:14 · 462 阅读 · 0 评论 -
iOS 高效添加圆角效果实战讲解
圆角(RounderCorner)是一种很常见的视图效果,相比于直角,它更加柔和优美,易于接受。但很多人并不清楚如何设置圆角的正确方式和原理。设置圆角会带来一定的性能损耗,如何提高性能是另一个需要重点讨论的话题。我查阅了一些现有的资料,收获良多的同时也发现了一些误导人错误。本文总结整理了一些知识点,概括如下:设置圆角的正确姿势及其原理设置圆角的性能损耗其他设置圆角的方法转载 2016-04-21 23:27:13 · 376 阅读 · 0 评论 -
多线程之NSThread、NSOperation、NSInvocationOperation
IOS中支持多线程操作,使用NSThread和NSInvocationOperation可以完成多线程功能。多线程的功能主要是为了防止阻塞主线程的工作(主要是UI操作和显示),使一些耗时的的操作在另一个线程中完成,完成后可以通知主线程来进行UI上的更新。多线程功能在实际开发中用的很多,最典型的就是网络请求和处理操作,下面主要来讨论一下Cocoa中的NSThread和NSInvocationOper转载 2016-04-21 17:09:18 · 236 阅读 · 0 评论 -
iOS 排序方法
一般分为三种:第一种 使用sortedArrayUsingSelector排序 SEL sel = @selector(compare:); arr = [arr sortedArrayUsingSelector:sel];第二种 使用 sortedArrayUsingDescriptors排序NSSortDescriptor *sorter = [[N原创 2016-04-21 12:51:48 · 315 阅读 · 0 评论 -
通知与消息机制
概述在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情。iOS中通知机制又叫消息机制,其包括两类:一类是本地通知;另一类是推送通知,也叫远程通知。两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒两种形式告诉用户,并且点击通知可以会打开应用程序,但是实现原理却完全不同。今天就和大家一块去看一下如何转载 2016-04-20 17:34:14 · 428 阅读 · 0 评论 -
ios 音视频处理优化总结
做了那么多年C底层,现在做iOS上层,感觉还是有很多优势的。做底层的时候就做过音视频的东西,上层有很多类似,相通的东西。公司做了个视频软件,实时监控。程序丢包严重,卡顿,还会黑屏。我接手之前就是这个样子。经过一天的摸索,结合之前看了一天的经验,把丢包问题,黑屏问题跟卡顿问题通通解决了。 由于代码不是我写的,我想了个很初级的办法,在所有音视频关键函数打上断点(对xcode来说原创 2016-04-19 22:40:27 · 4141 阅读 · 0 评论 -
GCD之dispatch queue深入浅出
iOS中多线程编程工具主要有: NSThreadNSOperationGCD这三种方法都简单易用,各有千秋.但无疑GCD是最有诱惑力的,因为其本身是apple为多核的并行运算提出的解决方案.虽然当前移动平台用双核的不多,但不影响GCD作为多线程编程的利器(ipad2已经是双核了,这无疑是一个趋势).http://www.cnblogs.com/scorpiozj/archi转载 2016-04-19 14:14:44 · 289 阅读 · 0 评论 -
TCP/UDP 学习
毕业这么些年,啥都学了一点,平时总结太少。学了就忘记了,吃了大亏。复习下TCP/UDP,其实很多东西大家都知道概念,也清楚大概怎么回事。但是没有深刻的印象,这将导致很多问题,面试的时候手足无措,干捉急,工作的时候,到处查资料,浪费时间。 首先复习下TCP/IP参考模型,它分为四层,应用层,传输层,网络层跟网络接口层。应用层负责应用程序的网络访问,通过端口号来识原创 2016-04-18 23:49:43 · 448 阅读 · 0 评论 -
UICollectionViewLayout
这是博主的WWDC2012笔记系列中的一篇,完整的笔记列表可以参看这里。如果您是首次来到本站,也许您会有兴趣通过RSS,或者通过页面左侧的邮件订阅的方式订阅本站。在上一篇UICollectionView的入门介绍中,大概地对iOS6新加入的强大的UICollectionView进行了一些说明。在这篇博文中,将结合WWDC2012 Session219:Advanced Collecti转载 2016-04-17 23:05:50 · 327 阅读 · 0 评论 -
iOS8自动调整UITableView和UICollectionView布局
本文讲述了 UITableView 、 UICollectionView 实现self-sizing cell布局的知识,以及如何用InvalidationContext优化 UICollectionView 布局的更新。背景iOS越来越人性化了,用户可以在设置-通用-辅助功能中动态调整字体大小了。你会发现所有iOS自带的APP的字体大小都变了,可惜我们开发的第三方APP依然是转载 2016-04-17 23:04:55 · 410 阅读 · 0 评论 -
UICollectionView自定义Layout之蜂窝布局
自定义Layout ?123456789101112131415161718//// HoneyCombLayout.h// Demo-Layouts//转载 2016-04-17 23:02:12 · 679 阅读 · 0 评论 -
IOS_CGContextAddArcToPoint与CGContextAddArc
这两个函数是绘制圆弧的函数。第一个函数比较好理解,第二个函数让我在纸上画了半天才搞明白,把我的理解给大家分享下。 void CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise) CGCon转载 2016-04-17 22:40:57 · 297 阅读 · 0 评论 -
iOS 8 自适应 Cell
在使用 table view 的时侯经常会遇到这样的需求:table view 的 cell 中的内容是动态的,导致在开发的时候不知道一个 cell 的高度具体是多少,所以需要提供一个计算 cell 高度的算法,在每次加载到这个 cell 的时候计算出 cell 真正的高度。在 iOS 8 之前没有使用 Autolayout 的情况下,需要实现 table view delegat转载 2016-04-17 22:34:35 · 339 阅读 · 0 评论 -
MBProgressHUD 使用的KVO分析
#pragma mark - KVO//注册KVO被观察者需要被观察的属性,添加传值给被观察者出来方法的传值选项,传新值还是旧值,还是两个都传。- (void)registerForKVO {for (NSString *keyPathin [selfobservableKeypaths]) {[selfaddObserver:selfforKeyPath:keyP原创 2016-04-17 20:58:36 · 397 阅读 · 0 评论 -
关于ios中的setNeedsDisplay和setNeedsLayout
文章转自:http://blog.csdn.net/xie_kun/article/details/7270546 我们可能对这两个命令并不陌生,setNeedsDisplay调用drawRect方法来实现view的绘制,而setNeedsLayout则调用layoutSubView来实现view中subView的重新布局,问题是为何要如此设计呢,直接调用drawRect和layou转载 2016-04-17 19:05:56 · 307 阅读 · 0 评论 -
iOS的socket开发基础
socket简介首先让我们通过一张图知道socket在哪里?Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。tcp和udp的区别在这里就必须讲一下udp和tcp的区别了TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。UDP:转载 2016-04-17 13:45:03 · 335 阅读 · 0 评论 -
iOS解决json串中的NSNull类型
后端返回的数据中总会出现一些NSNull类型,当我们一处理程序就会崩溃,因此想到把返回的数据中的NSNull类型全部转换成@""空字符串。下面是转化方法:1 自定义的几个方法:放在NSDictionary类别中#pragma mark - 私有方法//将NSDictionary中的Null类型的项目转化成@""+(NSDictionary *)nullDic:(NS转载 2016-04-17 13:25:21 · 386 阅读 · 0 评论 -
iOS开发之即时通讯之Socket(AsyncSocket)
转载http://my.oschina.net/joanfen/blog/287238摘要 ios socket第三方框架 AsyncSocket使用简介,连接,心跳,断线,数据发送与接收iOS socket AsyncSocket 即时通讯目录[-]环境使用1. socket 连接2. socket 断开连接与重连3. sock转载 2016-04-17 12:24:03 · 765 阅读 · 0 评论 -
iOS RunLoop 初识
今天突然才之间才意识到NSTimer这样的运行方式,是在多线程中实现的循环还是在主线程中去实现的呢。当然不可能是在主线程中的while那么简单,那样什么都干不了,简单看了下NSTimer是以同步方式运行的。时间到了,消息发出后,ontimer的函数是在主线程上调用的。我们会经常看到这样的代码:- (IBAction)start:(id)sender { pageStil转载 2016-04-16 23:47:36 · 273 阅读 · 0 评论 -
内存引用计数
1.什么是内存管理 移动设备的内存极其有限,每个app所能占用的内存是有限制的当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间。比如回收一些不需要使用的对象、变量等管理范围:任何继承了NSObject的对象需要去管理内存,但是对于对其他基本数据类型(int、char、float、double、struct、enum等)结构,枚举等不用去关心内存转载 2016-04-16 21:50:00 · 448 阅读 · 0 评论 -
block 对外部引用变量的处理
引用地址:博客园http://www.cnblogs.com/tangbinblog/p/4146728.html MRC 环境一、静态变量 和 全局变量 在加和不加 __block 都会直接引用变量地址。也就意味着 可以修改变量的值。在没有加__block 参数的情况下。全局block 和 栈block转载 2016-04-16 17:28:17 · 940 阅读 · 0 评论 -
某公司面试block
对于block的使用很多人用过,但是要深入,还有些路要走。 NSString *str =@"text"; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ NSLog(@"///原创 2016-04-16 16:38:55 · 384 阅读 · 0 评论 -
Push的原理及证书生成
网页转载自http://blog.163.com/juan_19886/blog/static/27830110201352224442764/Push的原理及证书生成:http://zxs19861202.iteye.com/blog/1532460Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这转载 2016-04-05 11:55:57 · 1073 阅读 · 0 评论 -
UITableViewCell 复杂时,高度计算优
方法1:简单粗暴,利用新的api接口 systemLayoutSizeFittingSize 我们声明一个存计算Cell高度的实例变量:@property (nonatomic, strong) UITableViewCell *prototypeCell; 然后初始化它:self.prototypeCell = [self.tabl原创 2016-04-05 10:10:37 · 426 阅读 · 0 评论 -
关于iOS UICollectionView的使用UICollectionViewFlowLayout
1.UICollectionView使用通常伴随着布局文件的使用当系统默认布局不满足条件的情况下,去请创建自定义类继承UICollectionViewFlowLayout实现范例:- (NSArray*)layoutAttributesForElementsInRect:(CGRect)rect{ NSMutableArray *attributes =原创 2016-02-25 20:45:46 · 596 阅读 · 0 评论