- 博客(169)
- 资源 (13)
- 收藏
- 关注
原创 iOS中的delegate的用法和规范
Objective-C中的delegatedelegate是Objective-C编写的应用中各种对象之间互相调用的主要方式之一. 通常情况下, 对象可以接收的消息都通过在接口文件中声明的方法来表示.@protocol MyProtocol <NSObject>- (void)func;@end什么是delegatedelegate是委托模式.委托模式是将一件属于委托者做的事情,交给另外一个被委
2015-09-07 09:56:34 31025 1
原创 TDD+结对编程活动分享
TDD+结对编程活动分享关于活动为了让大伙能体验编程的乐趣. 易贷项目iOS的小伙伴们组织了一场TDD+结对编程的活动.概念介绍首先和大伙介绍几个概念:为什么需要TDD我们都做过这样的事——写一大堆代码然后艰难地使它工作起来. 也就是先建造再修正. 测试是在代码写完之后的事情. 这种很难预料的过程被亲切地称为“调试”, 我们可能会在其中花掉半个小时. 修改一个bug可能导致产生另一个, 甚至是一系列
2015-08-31 14:59:01 1790
原创 iOS小技巧--用runtime 解决UIButton 重复点击问题
iOS小技巧–用runtime 解决UIButton 重复点击问题什么是这个问题我们的按钮是点击一次响应一次, 即使频繁的点击也不会出问题, 可是某些场景下还偏偏就是会出问题. 通常是如何解决我们通常会在按钮点击的时候设置这个按钮不可点击. 等待0.xS的延时后,在设置回来; 或者在操作结束的时候设置可以点击.- (IBAction)clickBtn1:(UIbutton *)sender{
2015-08-26 20:05:27 16066 27
原创 通过通过url routing解决UIViewController跳转依赖
XYRouterhttps://github.com/uxyheaven/XYRouter XYRouter是一个通过url routing来解决UIViewController跳转依赖的类. * 本类采用ARCInstallation本库基于ARC拷贝XYQuick到项目里在需要用的文件或者pch里 #import "XYRouter.h"Podfilepod 'XYRouter'#i
2015-08-18 14:28:47 2784 1
转载 斗地主策略说明
发个策略介绍,大伙来写个斗地主的ai来pk?------------------------------------------------以斗地主策略说明(不仅涉及博弈论,还涉及概率、逻辑推理和心理学):1. 什么情况下应该要地主?一副牌总共有四个2,两个王,我们叫大牌。可能出现的情况有:1)无大牌。这个时候明显不能要。2)有1
2015-08-11 21:39:26 4093
原创 程序员加入新团队的那些坑
程序员加入新团队的那些坑程序员刚刚加入新团队总是有各种不适应,下面让我们来吐槽他们吧.业务流程不清楚刚来就被安排写代码,我连到底要写什么都不清楚呢. 纳尼? 需求就一句话?整体架构不清楚我次奥, 好多代码. 我应该从哪里切入, 从哪里开始写?基础库不清楚我要弹出个自定义的tips, 可是弹出tips的接口在哪?文档不清楚我要发个网络请求, 这些乱七八糟的参数都得发送么, 哪些底层已经实现了? 还有,
2015-07-30 19:09:06 2330 1
原创 iOS 用宏在category里给对象添加属性
奇技淫巧 指过于奇巧而无益的技艺与制品. 转载请注明出处 http://blog.csdn.net/uxyheaven/article/details/46391771众所周知,一般的情况下我们是没办法在category里加属性的, 如果想加呢,需要用到Associated
2015-07-07 14:30:45 5590 3
原创 在Debug模式下中断, 在Release模式下跳出当前函数的断言
在Debug模式下中断, 在Release模式下返回的断言#define UXY_ASSERT_RETURN_ON_RELEASE( __condition, __desc, ... ) \ metamacro_if_eq(0, metamacro_argcount(__VA_ARGS__)) \ (UXY_ASSERT_1(__condition, __desc,
2015-07-02 16:13:09 2379 1
原创 深圳APAC Day of CodeRetreat笔记
深圳APAC Day of CodeRetreat笔记前言最近参加了小波老师组织的深圳APAC Day of CodeRetreat, 受益匪浅. 在此分享下活动的感受.转载请注明出处 http://blog.csdn.net/uxyheaven什么是 CodeRetreatCodeRetreat是集中编码操练活动, 在为期一天的时间内自己编写代码,以真实地反映自己的代码水平, 并且互相学习.一个典
2015-06-14 03:24:31 2804 1
转载 语义化版本2.0.0
摘要版本格式:主版本号.次版本号.修订号,版本号递增规则如下:主版本号:当你做了不兼容的API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下兼容的问题修正。 先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。简介在软件管理的领域里存在着被称作“依赖地狱”的死亡之谷,系统规模越大,加入的套件越多,你就越有可能在未来的某一天发现自己已深陷绝望
2015-06-12 17:39:57 828
转载 WWDC总结:开发者需要知道的iOS 9 SDK新特性
编者按:WWDC 2015苹果开发者大会是移动开发者一年一度的盛会,InfoQ中文站除了第一时间整理Keynote内容分享给大家之外,还邀请了资深的一线开发者分享他们的收获。本文为王巍(@onevcat)对WWDC上透露的iOS 9 SDK新特性的总结,分享给广大的iOS开发者。年年岁岁花相似,岁岁年年人不同。今年的 WWDC 一如既往的热闹,得益于 Apple 的随机抽选机制,这两年有更多的中国开
2015-06-12 13:48:19 1913
原创 iOS 用汉语写代码
奇技yin 指过于奇巧而无益的技艺与制品. 转载请注明出处 http://blog.csdn.net/uxyheaven/article/details/45350159我们可以用宏定义基本的运算符和类型#define 加 +#define 减 -#define 乘 *#define 除 /#define 大于 >#define 小于 <#define 对比 ==#define 等
2015-06-06 21:47:34 3485 5
转载 HTTP头部详解
HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP 协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码
2015-05-29 13:21:52 3251
原创 基于友盟的用户分析模块的设计
移动应用开发中基本都要用到用户分析,大部分的应用选择的友盟统计,我们也不例(其实不是没有内部的统计,是实在是人手不足,做的没人家好用啊).这篇文章题主就来分享下自己是如何封装的统计模块.业务需求业务需求经过抽象后,基本可以分为两层ui层点击业务层开始完成失败(默认带失败原因)我们的一个上报信息就由模块名 + 页面名 + 事件名字 + 事件类型 +事件子类型
2015-05-20 17:06:19 2968
原创 samurai-native 学习笔记--samurai中的单元测试
囧么说好呢,大神就是任性,自己写了个单元测试类,我们来看看吧使用// ----------------------------------// Unit test// ----------------------------------#pragma mark -TEST_CASE( Core, NSDictionary_Extension ){ NSDictionary * _te
2015-05-10 18:58:13 1715 1
原创 iOS 让对象伪装成一个字典
奇技yin巧 指过于奇巧而无益的技艺与制品. 转载请注明出处 uxyheaven csdn博客 其实这个技巧特定情况下,要求不高还挺是有用的.我们原本有个接口1,设计的….,为了灵活性嘛,就用了字典- (void)method1:(NSDictionary *)dic{ NSString *name = dic[@"name"]; NSLog(@"%s, name: %@",__F
2015-04-29 00:11:33 3183
原创 XCode6.3开新工程问题
XCode版本变化会带来一些问题,老项目直接升级还好,新开项目会遇到一些问题, 这个帖子记录一些遇到的问题.Xcode6中去掉了pch文件 pch是预编译文件,我们的一些头文件导入会写到这里如Foundation.h,如果你项目里有的文件没写没有的话,基本就挂了,需要手动写一边. 如果你想有pch需要在building setting中的precompile header设置下路径$(SRC
2015-04-18 15:15:42 6578 1
原创 samurai-native 学习笔记--samurai中的宏魔法(待更新)
samurai中的宏魔法文件 Samurai_Predefine.h Samurai里的一些预设宏// 这3个宏是在定义属性 @prop_assign( NSInteger, page IN)的时候标记这个数据流的方向时用的.#define IN#define OUT#define INOUT// 函数属性限定符: __attribute__((unused)) 这个限定符属性禁止编译器在
2015-04-13 13:42:35 2302 1
原创 samurai-native 学习笔记--samurai的启动过程(待完善)
Samurai的入口点在Samurai这个类,在load方法里实例化了Samurai1.1 SamuraiServiceLoader 安装服务 installServices loadedClassNames 返回所有的类subClasses 得到自己的子类初始化 服务给实现了ManagedService协议的服务 发送powerOn消息给服务发送install消息samurai目前有
2015-04-13 12:48:57 3225 1
转载 为什么说框架是新的编程语言
软件框架(Software framework)通常指是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范,而提供规范所要求之基础功能的软件产品。近日,JavaWorld的特约编辑Peter WaynerWayner发布了一篇题为《框架是新编程语言的7个原因》的文章。在文章中,Wayner首先指出在20世纪80年代,开发者很容易针对一个语言的优劣展开激烈的争论,
2015-04-11 01:15:13 2167
原创 从iOS手雷出发-总结iOS多设备UI适配规范方案
iOS5.0于本周提交App Store,这两天iOS手雷成员各自都在总结。如果你仅仅认为首页/搜索改版是主要需求,那你就错了,其实iPhone6、iPhone6Plues的适配才是重点。随着苹果发布iPhone6、iPhone6Plues,过去只属于Android设备的移动App多种设备尺寸适配问题,iOS的适配问题终于还是来了。研发GG表示蛋疼。。。(根本是库克没调研清楚,小道消息说i
2015-04-07 14:25:12 5059 4
转载 iOS 开发:绘制像素到屏幕
译注:这篇文章虽然比较长,但是里面的内容还是很有价值的。像素是如何绘制到屏幕上面的?把数据输出到屏幕的方法有很多,通过调用很多不同的framework和不同的函数。这里我们讲一下这个过程背后的东西。希望能够帮助大家了解什么时候该使用什么API,特别是当遇到性能问题需要调试的时候。当然,我们这里主要讲iOS,但是事实上,很多东西也是可以应用到OSX上面的。Graphics Stack
2015-03-31 22:41:19 3097
原创 iOS 底层强行调用高层接口
有的时候底层就是想知道高层,别纠结什么时候,这个主题下的文章注定都是这个德行的.我们又不想把a传给b.那么有办法的到a么
2015-03-24 21:17:28 2548
转载 IT人士入门指南
IT人士入门指南(2012-02-09更新)选择 除了IT行业,你可以选择的更多。 我知道,在经历了天朝12年的应试教育以后。来大学第一天的感觉就是”我自由了“。这是一个最好的感觉,也是一个最坏的感觉。好是,你确实可以自己决定很多事情了,坏是,你确定你做出一些比较有利的决定么。上大学以后你确实知道你想要什么么。如果我这样问你,你能回答么。天朝的具体制度不去评论。我们以生
2015-03-15 17:09:25 1929 2
原创 iOS 实例方法混淆
奇技yin巧 指过于奇巧而无益的技艺与制品. IMS指的是 Instance Method Swizzling, 实例方法混淆. 我们先来看普通的Method Swizzling
2015-03-14 23:22:23 3079 1
原创 iOS delegate挂钩
Objective-C 奇巧淫技–delegate挂钩奇技淫巧 指过于奇巧而无益的技艺与制品.需求说明在实际的编程过程中,我们总要定制一些控件,在定制的过程里,有时喜欢自己实现部分delegate方法// MYScrollView.m- (instancetype)init{ ... self.delegae = self; ...}- (void)scrollViewD
2015-03-14 18:25:06 4168 2
原创 iOS 定义名为任意的变量
我们可以用typeof关键字来定义一个id类型的变量// typeof(int) a; // Specifies variable a which is of the type int __typeof (NSString *) id = @"a";NSLog(@"%@", id);
2015-03-12 19:56:17 4565
转载 iOS ARC内存管理总结
特酷吧[tekuba.net]采用"署名-非商业用途-保持一致"的创作共用协议,使用本文内容请遵循该协议。博主在现在的公司已经两年了,现在正考虑着换工作。趁着这个机会,准备把一些基础的iOS知识系统的整理下,这一篇就来说说iOS内存管理方面的,主要是ARC环境。后面可以看到,虽然ARC在本质上也是采用了引用计数的概念,但作为开发者来讲,ARC环境基本上很少考虑非ARC环境中的复杂的引用计数关系
2015-03-02 13:38:52 1878
原创 记录遇到的ios下的坑和bugs
开个帖子不定期更新,记录遇到的ios下的bugs,其中有些已经解了,有些还是无解,有些是apple自己的改进,但是确实坑到我们了UIWebView内存泄漏这个到ios7下还无解,ios8未看 UIFont copy 在ios6下crash这个想不明白为啥,也许是以前的coder用了什么黑魔法UITextView 和 UITextField 的键盘出现的消息的顺序不一样的问题// UIKeyboar
2015-02-12 17:30:18 3421
原创 iOS 用类别给类加属性以及原理
oc在类别里给类加属性以及原理如何在类别里给类加属性呢,有鸭子模样的我们就认为他是鸭子了.@interface NSObject (XY)@property (nonatomic, strong) id tempObject;@end@implementation NSObject (XY)@dynamic tempObject;- (id)tempObject-
2015-02-05 18:50:25 10869 1
原创 ip6适配归纳
ip6/6p的的分辨率从ip5的 320x568 变成了 375x667 和 414x736 .加上已经有的ip4的 320x480 和 ipad的768x1024, 总共有5种尺寸, So以前的编码方式已经不适合了.我们需要改进现有的工作流,采用apple推荐的autolayout + sizeclass的方式去拥抱变化. 下面的一些文章是介绍了我们应该如何去做.总的来说分UI和Develop两部分的变化, UI的变化主要是3x和基准尺寸的改变, Develop的是autolayout和sizeclas
2015-01-13 15:29:15 2493
原创 高效的把NSMutableArray变成NSArray
高效的把NSMutableArray变成NSArray我们在方法内部可能会用NSMutableArray,但是返回的时候希望其他人不去改我们的Array
2015-01-07 01:02:39 6905 8
原创 编写高质量的iOS代码--Effective Objective-C 2.0 读书笔记
编写高质量的iOS代码--Effective Objective-C 2.0 读书笔记这本书年初刷完,感觉不错,介绍了很多小点,都是平日不怎么关注的.第1章 熟悉Objective-C
2014-12-26 23:56:18 5870
原创 代码的未来读书笔记<二>
3.1语言的设计对Ruby JavaScript Java Go 从服务端客户端以及静态动态这2个角度进行了对比. 这四种语言由于不同的设计方针,产生了不同的设计风格.
2014-12-23 17:28:52 1352
原创 iOS DLNA编程
## iOS DLNA编程近期实现了iOS下的DLNA,发现ios下的DLNA编程资料很少,其实DLNA文档还好 (28m) ,但是真的确定要看文档自己去实现么?下面先介绍一下DLNA的基本概念,已经有概念的同学可以跳过,直接看iOS下的DLNA库
2014-12-12 20:22:44 10008 30
转载 GCD(Grand Central Dispatch)
1. GCD: 异步执行任务的技术之一,一般是将应用程序中记述的线程管理用代码在系统级实现,由于是系统级的管理,这样的话将有更好的线程效率。2. 使用方法如下:dispatch_async(queue, ^{ // 想执行的任务});开发者要做的只是定义想执行的任务并追加到适当的Dispatch Queue中。3. 线程(Thread): 1个CPU执行的CPU指
2014-12-11 16:35:57 1720
原创 静态存储和堆栈动态存储
堆栈本篇文章也是拾遗,丫的,叫你大学不好好听课啊,现在还不是乖乖看起了.目标程序运行时的存储组织从逻辑上看,在代码生成前,编译程序必须进行目标程序运行环境的设计和数据空间的分配.程序在运行的时候需要得到一块内存空间让自己在上面运行,此空间需要包含目标代码和目标代码运行时的数据空间.通常,此内存区域划分为:目标区, 静态数据区, 栈区, 堆区.
2014-12-02 23:03:36 4359 1
一个动态链接库(MFC扩展库)及其测试程序的例子(系统托盘图标)
2008-10-16
Libnids-API(中文版)
2008-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人