![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
lawson_y
这个作者很懒,什么都没留下…
展开
-
iOS开发系列--并行开发其实很容易
原文地址:http://www.cnblogs.com/kenshincui/p/3983982.html概览大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算。可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行。但是机器码是按顺序执行的,一个复杂的多步操作只能一步步按顺序逐个执行。改变这种状况可以从两个角度出发:对于单核处理器,可以将多个步转载 2015-06-22 10:12:21 · 587 阅读 · 0 评论 -
Objective-C Runtime能做什么?
转自Anselz的博客在之前的文章中我们介绍了Runtime是什么,属于理论性介绍,你看了上篇很迫切的想知道Runtime到底能干什么?不要着急,这一篇Blog将将讲解Runtime怎么应用到实战中Runtime官方文档在这里,包括了接口名字以及使用说明。下文讲到的接口都能在此文档中找到。KVC中setValue中使用 我们知道在KVC中如果直接setValue如果对象没有这个属性或者是变量就会直转载 2016-04-19 14:57:31 · 435 阅读 · 0 评论 -
图片缓存 - SDWebImage
1. 在tableView中使用UIImageView + WebCache 分类#import <SDWebImage/UIImageView+WebCache.h>...- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { stati原创 2016-04-20 16:17:44 · 642 阅读 · 0 评论 -
自定义控件使用注意点
许多时候使用xib或是storyboard来创建一个东西很是方便,但就因为这样创建了与代码之间的连接度就不那么容易发现了,结果调试起来就比较容易出现一些奇葩的问题。在此自己作为一项笔记整理一些东西: 使用xib自定义时,如果想直接使用类名需要在初始化方法中调用加载nib文件,并可在aweakFromNib中进行各项控件属性调整设置。- (instancetype)initWithStyle:(原创 2016-02-06 11:24:14 · 823 阅读 · 0 评论 -
NavigationBar及backBarItem调整
tabBar与navigation使用注意点:往往都是从需求而迸发出问题所在的。问题展开:需要自定义导航栏上的返回按钮样式?可以在navigationController控制器中进行重写方法,设置其backItem共需要四步:1 . 设置backButtonItem属性隐藏 self.navigationItem.hidesBackButton = YES;2 . 自定义一个btn UIBut原创 2016-01-13 11:02:40 · 674 阅读 · 0 评论 -
iOS中加数据锁的方式
多线程中资源的使用问题有时会出现极大的问题,尤其修改值的时候,这就引入了锁的机制。 了解iOS的几种锁的基本形式;下面几个还未用过因此也只是简单提下,后续再完善!1. @synchronized(id object) (最简单的方法) 会自动对参数对象加锁。 作用是创建一个互斥锁,保证此时没有其它线程对self对象进行修改。 这个是objective-c的一个锁定令牌,防止self原创 2016-01-11 17:11:09 · 1533 阅读 · 0 评论 -
iOS XML解析简述
XML数据解析:NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];设置代理:parser.delegate = self;开始解析[parser parse];代理方法:开始解析文档,可在其中初始化一些需要的量- (void)parserDidStartDocu原创 2015-06-28 21:44:27 · 852 阅读 · 0 评论 -
支付宝集成
支付宝集成虽然有了官方的文档说明,但还有些让人迷惑,部分问题的解决方案也并不清楚,这次权做整理一番。1 . 打开Demo第一个看到的便是需要填写三个值 NSString *partner = @"XXXXX"; // 合作者身份ID NSString *seller = @"XXX.XXX.com"; //客户端号 NSString *privateKey = @""; /原创 2016-03-08 18:07:44 · 767 阅读 · 0 评论 -
微信支付基本流程
现在越来越多的app要求有多种支付功能,为了跟上时代的进步,现在着手去开发一些小功能,整体的流程是需要掌握下了。自己整理了一下笔记方便初入手者探讨。A. 将WCPay导入到工程中,编译不会发现错误是因为没有调用其中的方法,先在appdelegate didFinishLaunching中添加注册方法://需要导入 #import "WXApi.h"[WXApi registerApp:@"wxb4原创 2015-12-25 12:30:59 · 1928 阅读 · 0 评论 -
自定义本地通知
1 . 自定义本地通知:- (void)addLocalNotification { UILocalNotification *notification = [[UILocalNotification alloc] init]; notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:10.0]; // 10s后原创 2016-05-31 16:35:40 · 680 阅读 · 0 评论 -
iOS - 类扩展与分类的区别
类扩展 (Class Extension也有人称为匿名分类)作用 能为某个类附加额外的属性,成员变量,方法声明 一般的类扩展写到.m文件中 一般的私有属性写到类扩展使用格式:@interface Mitchell()//属性//方法@end分类的区别 分类的小括号中必须有名字@interface 类名(分类名字)/*方法声明*/@end@implementatio转载 2016-04-24 11:58:16 · 840 阅读 · 0 评论 -
KVO - 观察自定义属性值
某些时候使用代理,或是通知都不是很方便,可以使用这种方式对属性值进行监听处理。1 . 声明属性&注册监听{ BOOL isOk;}[self addObserver:self forKeyPath:@"isOk" options:0 context:nil];2 .改变属性值 [self willChangeValueForKey:@"isOk"]; // 只有自己去定义时才需要如此原创 2016-05-09 13:52:53 · 1050 阅读 · 0 评论 -
runtime - 方法动态添加
示例:void actionTest_IMP(id self, SEL _cmd){ NSLog(@"DemoTest");}- (void)addMethod{ class_addMethod([DemoClass class], @selector(actionTest), (IMP)actionTest_IMP, "v@:"); // Test DemoC原创 2016-04-20 15:45:04 · 406 阅读 · 0 评论 -
runtime - 属性的动态挂载
学习使用运行时知识:方法引入: tips:需要提前导入运行时框架#import <objc/runtime.h> static const char testKey; objc_setAssociatedObject(self, &testKey, @132, OBJC_ASSOCIATION_RETAIN); NSNumber *number = objc_getAss原创 2016-04-19 14:41:41 · 578 阅读 · 0 评论 -
详解Objective-C runtime
原文地址:http://blog.securemacprogramming.com/2013/12/by-your-_cmd/ 感谢翻译小组成员wingpan热心翻译。本篇文章是我们每周推荐优秀国外的技术类文章的其中一篇。如果您有不错的原创或译文,欢迎提交给我们,更欢迎其他朋友加入我们的翻译小组(联系qq:2408167315)。 本文是我在 Alt Tech Talks: Londo转载 2016-04-19 15:14:14 · 465 阅读 · 0 评论 -
内存管理基本原理及非ARC环境使用小心得
最近做项目,因为要求是非ARC环境,熟悉了ARC环境后,非ARC的要求却是一个小小的挑战,不过再怎么也是一个进步的方向,为此搜集了一些资料,整理了各位大神,前辈的心得,自己整理了一篇更基础的理解。可以让一些文件保留ARC机制,一些文件不保留:在Build Phases,在其中Complie Sorces中选择需要ARC的文件双击,并在输入框中输入:-fobjc-arc如果不需要ARC则原创 2015-06-22 10:26:13 · 652 阅读 · 0 评论 -
10个加速Table Views开发的Tips
加速你的Table Views通常你会发现一个图片类的app会在一个imageview上做下面这些事情:下载图片(主要的内容图片+用户头像图片)更新时间戳 展示评论 我建议你去克隆下来那个demo的目录(github)去体验一下一开始的时候它是多么糟糕。跳到XMCFeedTableViewCell看下它的提升并且感受一下它的性能。如果你在iphone 6+上面运行的话优化感受起来可能不那么好转载 2015-12-22 10:15:56 · 519 阅读 · 0 评论 -
iOS 开发:绘制像素到屏幕
译注:这篇文章虽然比较长,但是里面的内容还是很有价值的。像素是如何绘制到屏幕上面的?把数据输出到屏幕的方法有很多,通过调用很多不同的framework和不同的函数。这里我们讲一下这个过程背后的东西。希望能够帮助大家了解什么时候该使用什么API,特别是当遇到性能问题需要调试的时候。当然,我们这里主要讲iOS,但是事实上,很多东西也是可以应用到OSX上面的。Graphics Stack绘制屏幕的过程中又转载 2015-12-22 10:53:57 · 891 阅读 · 0 评论 -
代理、nsnotification和kvo的区别和用法
个人在网上浏览一些文档发现蛮有意思的,现转载下来供大家学习查看。1.效率肯定是delegate比nsnotification高。 2. delegate方法比notification更加直接。 最典型的特征是,delegate方法往往需要关注返回值, 也就是delegate方法的结果。比如-windowShouldClose:,需要关心返回的是yes还是no。 所以delegate方法往往包含转载 2016-01-07 15:35:45 · 894 阅读 · 0 评论 -
事件监听:响应链,事件传递 主要方法
事件监听就要考虑几个点: 事件的传递,响应链 传递过程的主要方法系统会找到第一响应者响应链,事件传递, hitTest:WithEvent:原创 2016-01-27 12:11:22 · 778 阅读 · 0 评论 -
sqlite基本语句使用
1 . 建表语句: NSString *sqlCrTable = [NSString stringWithFormat: @"CREATE TABLE IF NOT EXISTS '%@' ('%@' INTEGER PRIMARY KEY AUTOINCREMENT, '%@' TEXT,'%@' TEXT)",rollTableName,Id,ADPicURL,flag];2 . 插入数据:原创 2016-01-12 09:13:20 · 680 阅读 · 0 评论 -
开发中常用的宏
开发中pch中会经常使用到一些宏,从网上搜罗了部分,整理了下,网上也不乏整理的较全的,自己作为笔记只整理自己用到的吧。1 . 获取屏幕 宽度、高度#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)2原创 2016-01-12 09:34:11 · 719 阅读 · 0 评论 -
Xcode高效开发 ——快捷键
注:alt与option是同一个键【有的直接使用的键盘上无option键】1 . 左侧navigator command + 1-8 :Xcode左侧navigator commnad + 0 :为是否隐藏或是打开navigator2 . 与此相对,右侧的utilities便需要添加option操作了 option + command + 0 :隐藏或是打开utilities原创 2016-04-28 22:54:04 · 645 阅读 · 0 评论 -
appearance - 自定义外观属性
步骤: 创建一个视图 在其.h文件中声明的属性后添加 UI_APPEARANCE_SELECTOR@property (nonatomic, strong) UIColor *viewColor UI_APPEARANCE_SELECTOR; 在其.m文件中初始化时可添加一些默认操作+ (void)initialize { myView *myv = [self appea原创 2016-05-26 14:31:09 · 1576 阅读 · 0 评论 -
iOS碰撞检测 - 坐标转换
意义:旨在找到响应的那个控件。先看一段代码:- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {CGPoint hitPoint = [_testButton convertPoint:point fromView:self]; if ([_testButton pointInside:hitPoint withEvent原创 2016-04-19 15:26:32 · 1078 阅读 · 0 评论 -
苹果手机各版本分辨率
iphone6sp / iphone6sp 分辨率 414 x 736, Reader @3x, 5.5吋 width ---- 414.00 height --- 736.00 scale ---- 3.00iphone6s / iphone6 分辨率 375 x 667, Reader @2x, 4.7吋 width ---- 375.00 height ---原创 2016-05-04 13:48:53 · 934 阅读 · 0 评论 -
swift-tableView滚动,里面图片发生偏移动画
1. 在cell的content View上放一个UIView控件,设置cell高度与uiview的高度为300 2. 在uiview上再添加一个UIImageView,设置左右靠边,高度设置为400 3. 设置图片的填充模式为aspectFill【放张大图】代码设置:设置tableviewHeight = 3002. override func tableView(_ tableView原创 2017-02-19 16:37:25 · 1170 阅读 · 0 评论