自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

iOS开发笔记

纯粹的个人学习笔记总结与记录、真实的开发经验整理,便于二次用到时翻查。

  • 博客(110)
  • 资源 (18)
  • 收藏
  • 关注

原创 iOS开发笔记之六十三——一个NSTimer引发内存泄漏

一、问题产生与分析先看下产生的代码:- (void)dealloc{ [self.timer invalidate]; self.timer = nil; NSLog(@"dealloc!!!!!!!");}- (void)viewDidLoad{ [super viewDidLoad]; self.timer = [NSTimer sc

2017-02-24 15:53:40 9573

原创 iOS开发笔记之六十二——如何构建大型App的Crash符号化系统

一、背景最近梳理了公司的Crash管理流程,感觉这个过程可以作为一款较大业务量App的参考流程,调研了其他,基本都是大同小异。二、Crash文件的产生与符号化1、符号表符号化的3种方法,不多说,前两种不是本文讨论的,直接略过,说第三种。每一个可执行程序都有一个build UUID来唯一标识(这个UUID不同于用户设备的那个唯一UUID,这个是标示应用的),在Xcode项目编译后

2017-02-23 19:37:52 8349

原创 iOS开发笔记之六十一——Autorelease Pool的实现原理总结

一、背景要想深入了解autorelease pool的原理,看以下两片文章即可:Using Autorelease Pool BlocksObjective-C Autorelease Pool 的实现原理要想掌握上文中的要点,还是要废不少劲的。对于这种原理比较抽象,和实际开发编码没有直接关系的原理性的东西,常常是看一遍过一阵子很快就忘得了,为了加深印象,还是有必要系统性地

2017-02-22 15:24:30 15886

原创 iOS开发笔记之六十——OS X和iOS安全机制之二——隔离机制

隔离机制是一项很前卫且最好拥有的特性,现在已经成为苹果技术风景线中不可分割的一部分。基本思想很简单,而且也是应用程序安全性的一个基本原则,那就是不受信任的应用程序必须在一个独立的隔间(compartment)中运行,隔间实际就是一个隔离的环境,在这个环境中所有的操作都会受到限制。这个机制之前在leopard中叫seatbelt,后来就改名为sandbox(沙盒),在lion中得到了极大的改进。其中

2017-02-15 19:01:05 9172

原创 iOS开发笔记之五十九——OS X和iOS安全机制之一——签名机制

一、背景在OS X上病毒和恶意软件很少见,给大家的感觉是OS X和iOS更加安全。到底是什么原因导致的OS X更加安全呢?(1)OS X占有率较低,没有吸引足够的恶意软件开发者的注意(假设你是恶意软件开发者,正在图谋准备下一次非法勾当。你是愿意花精力真对全世界90%以上的电脑下手,还是剩下的5%的电脑呢?)。(2)UN*X家族的OS总是坚持最小权限原则,这样可以避免用户默认

2017-02-15 18:56:52 9888

原创 iOS开发笔记之五十八——ARC下的block类型分析

这里有篇唐巧的博客:http://blog.devtang.com/2013/07/28/a-look-inside-blocks/,根据文中介绍,block一共存在以下三种类型:1、_NSConcreteGlobalBlock全局的静态 block,不会访问任何外部变量;2、_NSConcreteStackBlock保存在栈中的 block,当函数返回时会被销毁;3、_NSC

2017-02-07 11:03:34 10200

原创 iOS开发笔记之五十七——__weak与__strong是如何解决循环引用的

当我们写一个block时,如果你的block涉及被self持有以及需要访问self的成员时,循环引用问题由此产生。解决的办法也很简单,其中利用__weak与__strong是常见的手段,类似代码如下:__weak typeof(self) weakSelf = self;self.block = ^{ __strong typeof(weakSelf) strongSelf =

2017-02-03 13:55:51 15367 2

原创 Python开发笔记之二——Python网页爬虫与画图

我们经常需要拉一下业务的某一个指标数据汇总给老板看,在我们内部监控平台上,因为系统平台的人没有暴露api给业务层,之前想汇总统计数据基本都是手动一天一天的去采集,每次采集都是一个机械重复蛋疼的过程,这次狠下心来,把这个过程脚本化了。为了防止脚本丢失,特意在这里做个笔记记录一下。这个过程其实就是简单的两步:数据的采集和画图1、数据的采集因为这些数据是按天产生的,数据的URL地址只有日期不

2017-01-23 19:23:45 9582

原创 iOS开发笔记之五十六——Geofencing地理围栏技术介绍

我们境外业务有这样的一个需求场景,当用户走进某一商户附近时,我们可以给用户发送和此商户相关的推送消息,从而为业务引流。针对这种需求,我们启动了这个技术调研,android的方案大致是不断获取用户当前位置经纬度,并上报到后端,后端经过计算判断用户是否已经进入提前划好的区域,如果进入,则发送远程通知给用户即可。由于iOS和android的后台能力不同,所以实现此功能的方案iOS和android不同。如

2017-01-22 20:54:47 16267 5

原创 文件相似度比对工具的设计与实现

一、背景与目标我们业务维护了两个代码仓库,两端的代码很多都是一个平台先开发好,几乎直接copy到另一个仓库。于是产生了一个技术需求,实现这两个仓库代码复用。在技术预研阶段,需要统计早先copy的代码文件有多少,提前预估双端代码的大概可复用文件比例。早先我是利用Beyond Compare 手动遍历文件,依据“肉眼”去对比的,花了大概一天的时间,而且估计的数据比较粗略。考虑到这个工作以后

2017-01-17 17:23:38 11962 2

原创 iOS开发笔记之五十五——关于LocationManager那点事

定位服务LocationManager是很多APP常用的,用起来也很简单,但是如何能够合理地使用它,将是本文要描述的。通常一款APP是不直接使用LocationManager回调提供的经纬度的,一般还需要将经纬度转化为详细的城市或位置等信息,这边在点评和美团App是经过调接口来实现的(当然如果你对位置信息要求不是很高,你也可以在App本地写个地理围栏)。

2017-01-13 20:17:46 11194

原创 我是怎样在美团点评做App需求迭代的

一、一人一个团队我加入大众点评的时候,点评刚刚分拆出App的业务线,刚好我是这个业务线的第一个iOS开发。所以当时的情况是一个人一个团队,而且只在点评App上开发,版本迭代的节奏基本上就是我自己的开发节奏,因为只有一个人,PM们对我充满了无尽的respect和dependency。那时候很累,我基本上很少晚上9点之前下班,周末很少双休,而所有的这一切都是自愿的,尽管没有调休没有加班工资,所以,

2016-12-11 19:12:03 12525

原创 启动SQL提示"Can't connect to local MySQL server through socket '/tmp/mysql.sock"参考解决方案

写了个脚本可以定时访问本地安装的mySQL,启动本地sql时,突然报下面错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)检索了资料http://blog.csdn.net/ixidof/article/details/595890

2016-11-17 14:09:42 7255 1

原创 Python开发笔记之一——安装Jupyter Notebook

1、PIP的安装首先我们需要安装pip,通过pip来安装jupyter;pip的安装之前需要去这里https://bootstrap.pypa.io/get-pip.py下载get-pip.py文件(文件有点大,有点慢,耐心等待);文件下载下来执行如下命令:➜  python sudo easy_install pip在执行过程中,你可能会遇到如下问题:

2016-11-15 17:52:08 15912

原创 iOS开发笔记之五十四——App减肥常用方法

像美团点评这种app体量,安装包都已经100多M,对于瘦身是由较强的意愿的。经过不断的积累,整理了一些App常见的减肥方法。1、废弃的资源文件与代码这个就不用多说了,随着“历史的沉淀”,会有大量的废弃业务的代码以及资源文件,它的清理也是充满了坑坑洼洼。2、去重去重包括很多方面,包括重复代码类、重复资源文件,对于点评美团这种业务繁多的App,工程项目中图片数量达到几千张,经常会碰

2016-10-17 17:14:50 11352

原创 iOS开发笔记之五十三——NSArray快速求总和、最大值、最小值和平均值

搜索的几种可以快速求总和、最大值、最小值和平均值的方法:    NSArray *array = [NSArray arrayWithObjects:@"2.0",@"2.3", @"3.0",@"4.0", @"10",nil];    CGFloat sum = [[array valueForKeyPath:@"@sum.floatValue"] floatValue

2016-10-03 14:32:57 1018

原创 iOS开发笔记之五十二——获取汉字拼音的方法

将一个String的汉字,转为拼音返回:+ (NSString *)transform:(NSString *)chinese{    //将NSString装换成NSMutableString    NSMutableString *pinyin = [chinesemutableCopy];    //将汉字转换为拼音(带音标)    CFStringTransfo

2016-10-03 14:28:36 551

原创 iOS开发笔记之五十一——跳转到app store应用下载评分

iOS的openURL方法可以打开一个H5页面:    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id

2016-10-03 14:24:25 518

原创 iOS开发笔记之五十——禁止锁屏方法

默认情况下,当设备一段时间没有触控动作时,iOS会锁住屏幕。但有一些应用是不需要锁屏的,比如视频播放器等;    [UIApplication sharedApplication].idleTimerDisabled =YES;    或    [[UIApplication sharedApplication] setIdleTimerDisabled:YES];

2016-10-03 14:20:51 3979

原创 iOS开发笔记之四十九——iOS开发中一些常用的路径

App沙盒路径:/Users/username/Library/Developer/CoreSimulator/Devices/2E18005A-EAAF-43DB-967F-1551971CD6F3/data Xcode缓存路径:/Users/username/Library/Developer/Xcode/DerivedData模拟器的位置:/Applications/

2016-10-03 14:15:57 393

原创 iOS开发笔记之四十八——gem、brew、rvm、bundle的相关介绍

一、相关概念1、GEM的概念gem其实就是RubyGems,RubyGems是一个包管理框架,提供了ruby社区的gem的托管服务,用于ruby软件包的下载、安装、使用;ruby的软件包被称为gem,包含了ruby应用或库。安装RubyGems需要先下载安装包然后解压开后运行。和brew不同,brew用于操作系统层面上的软件包的安装,而gem只是管理ruby软件;2

2016-09-18 16:19:52 12961

原创 iOS开发笔记之四十七——多线程场景下的KVO使用参考方案

如果你取检索网络资料会发现,有人直接不建议把KVO与多线程混合使用,因为KVO的响应和KVO观察的值变化是在一个线程上的,不同的线程可能会导致不可预知的后果。参考资料见这里:(1)http://objccn.io/issue-7-3/(2)http://blog.csdn.net/hello_hwc/article/details/43815743当然,场景总是千变万化的,

2016-04-15 16:41:18 12674

原创 iOS开发笔记之四十六——常用的MAC以及Xcode操作快捷键

掌握IOS开发的快捷键,以下是自己总结的常见的,待不断更新,掌握后会有利于提高开发效率:Xcode 开发操作快捷键:1、快速打开:command +shift + O ;2、格式化代码:control + i ;3、项目导航器:command + 0/1;4、工具区域:command+ option + 0/1;5、调试区域:comman

2016-03-20 17:49:00 594

原创 iOS开发笔记之四十五—— Objective-C类扩展的方法之一——分类(category)

分类(category)是一个Objective-C中类扩展的一种重要的手段。大致的使用定义格式如下:.h文件定义格式:@interface NSString (MyExtend) -(NSString*)myString; @end .m文件定义格式:@implementation NSString (MyExtend) -(NSStr

2016-03-06 17:18:06 580

原创 iOS开发笔记之四十四——UITableView的UITableViewStyleGrouped风格顶部空白的设置

1、问题背景 刚在一个界面上搭建一个tableview,但是无论怎么设置,tableview的顶部都会有一个空白,初始化代码如下: self.reviewTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.width, self.view.bounds.size.height - 233)

2015-12-17 11:15:03 4115

原创 iOS开发笔记之四十三——日历NSCaledar使用过程中遇到的一个苹果系统bug

我们的app上有一个时间日历,早期的需求只考虑到app在国内使用。在国内时,NSCaledar这个方法的使用一切正常,后来业务要扩大到国外各地。NSCaledar就暴露了一个问题,这个问题直接导致了我们日历页面的卡死。我们忽略掉所有的繁文缛节,直接进入问题的根源。(1)NSCaledar的初始化,取得当前用户的逻辑日历,如下:_calender = [NSCalendar currentC

2015-11-25 19:33:04 8580

原创 iOS开发笔记之四十二——一个double精度导致的bug

最近app报了一个double类型显示的bug1、先看下问题:代码里面接受来自api返回的double型的数据,方式如下:itemCell.priceLabel.text = [NSString stringWithFormat:@"¥%@", @(item.ticketGroup.bestPrice)];结果api传过来89.9时,label显示结果如下:2、%f,%

2015-11-24 16:00:50 10506

原创 iOS开发笔记之四十一——一个野指针引起的bug

这个bug大概是这样子,我打出的包,装到真机上,会crash。但是在模拟器甚至连接真机进行联调时,一切正常。拿到crash日志跟踪时,因为报错的方法包含的代码太大了,所以很难找出原因在哪里。1、bug的起源来自下面一行前人留下的“古老”代码:@property (nonatomic, assign) Pair *curSort;代码中是这样使用这个curSort变量的,首先对它进行初始

2015-07-24 20:16:54 3835

原创 iOS开发笔记之四十——一个诡异的编译报错问题

1、参考链接:http://www.cocoachina.com/bbs/read.php?tid=265522

2015-06-30 19:52:18 13453

原创 iOS开发笔记之三十九——一个@dynamic导致的crash问题

1、crash日志如下:2015-06-03 11:42:53.807 DPScope[86379:1639651] -[HOTELShopInfoFoodNearModule setTitleCell:]: unrecognized selector sent to instance 0x7fd5fe7d04002015-06-03 11:42:53.815 DPScope[8637

2015-06-03 11:39:49 1631

原创 iOS开发笔记之三十八——利用objc_setAssociatedObject创建关联

有时一个类定义好之后,发现类属性不能满足需求,想要扩展其成员属性,此时可以采用objc_setAssociatedObject这种创建关联的方法进行扩展类属性。

2015-05-11 21:55:24 948

原创 iOS开发笔记之三十七——OC中父类与子类之间相互调用方法的总结

1、父类调用子类的方法:2、子类调用父类的方法:3、父类调用自己的方法:4、子类调用自己的方法:5、参考链接:http://blog.csdn.net/xpwang168/article/details/8085351

2015-04-22 16:25:44 16509 1

原创 程序小猿入职一年的内心独白

在技术这条道路上,我正在经受着前所未有的孤独与迷茫,入职不到一年的时光里,不止一次后悔,甚至想过放弃。此文,我写了很久,改了又改,删了又删,总希望能够给同道中人留下一些有价值的文字。1、未入职场  —— “活着,不为改变这个世界,只为这个世界变得更美好”      我硕士毕业于一所985重点大学软件工程专业,典型的计算机科班出生。在校时,属于那种什么语言都写过,但是什

2015-03-28 15:09:49 9525 4

原创 iOS开发笔记之三十六——开发中内存管理的使用技巧汇总

IOS自动有了ARC机制后,以及主流iphone设备不断扩大的内存,让开发者可以不像以前那样严格的考虑内存问题了。但是作为一个开发者,我们还是要尽可能的要写出合理使用内存的程序,尤其在调用某些第三方、开源的API、加载图片等资源文件、处理音视频等场景时,建议大家还是多多注意下。因为ARC下一旦出现内存问题,将更加难以定位与发现,有时即使leak工具也无法发现;此文便是汇总了开发中以及自己在实际的文

2015-03-07 14:55:26 860

原创 iOS开发笔记之三十五——一种让Xcode报错更加精准的方法

1、Xcode报错信息时常没有意义    我们经常遇到Xcode联调时,崩溃报错但是报错的信息没有意义。根据报错信息根本找不到app crash的地方。例如下面这个报错,运行app直接crash,无法定位问题所在。根据信息我们只能知道是因为“CALayer position contains NaN”这个错误,但是不知道问题出现在哪里。2、设置crash的具体位置选择Xcode

2015-02-24 22:41:12 2837

原创 iOS开发笔记之三十四——关于导航栏与状态栏的操作总结

1、如何隐藏导航栏:2、如何隐藏状态栏:

2015-02-10 23:38:49 592

原创 iOS开发笔记之三十三——一种跨类调用方法的案例

有时我们需要在A类中调用B类中的方法,例如点击A类中的一个按钮,调用B类中的对应方法。下面就是要讲述一个A类中按钮点击调用B类方法的案例。1、A类中:@interface A ()@end@implementation A- (id)initWithFrame:(CGRect)frame baseVC:(UIViewController*) baseVC conte

2015-01-22 16:11:39 1643

原创 iOS开发笔记之三十二——类之间交互的方式之一——协议回调传值

假如你要将A类中的一个值或者操作通知B类,有很多方法,其中最为常用的就是使用回调,Objective-C中的回调是借助协议protocol实现的。

2015-01-21 13:30:33 1048

原创 iOS开发笔记之三十一——UIButton的使用总结

1、2、3、参考资料

2015-01-14 19:36:52 747

原创 iOS开发笔记之三十——UILabel的使用总结

UILabel是IOS开发中最为常用的控件之一,熟练掌握它的各种属性可以很大的提高开发效率,下面整理列出了常用的用法如下: 1、设置UILabel显示的文字:    //文字内容    myLabel.text = @"test";    //文字颜色    myLabel.textColor = HEXCOLOR(0x656565);    //文字字体设置    m

2015-01-14 18:31:32 1143

ios搜索功能的实现源码

ios搜索功能的实例代码,可以直接编译运行的。在现有的表视图下,实现搜索功能。

2014-02-06

企业级ios应用开发实践14

企业级ios应用开发实践源码,请大家参考,谢谢。

2013-12-19

企业级ios应用开发实践5

企业级ios应用开发实践源码第5章,希望大家参考,谢谢。

2013-12-19

企业级ios应用开发实战11

这是企业级ios应用开发实践这本书的源码的第11章,大家可以参考下。

2013-12-19

Xcode高级图形编程实例6

Xcode高级图形编程的实例,就是企业级ios应用开发实践这本书的第六章源码。

2013-12-18

Xcode下饼图、柱状图、折线图的绘制

在Xcode下绘制一些图形,有饼图,柱状图、折线图等,可以直接运行的源码。

2013-12-17

算法导论第二版课后答案(完全版)

这份答案凝聚了我们很多人的心血,我们经过一学期的搜索和整理,最终搜集到了目前为止这份最全面的算法导论答案,这份答案也给我们带来了巨大的帮助。希望可以帮助要下载的同学。

2011-12-28

Android简介

了解各种手机操作系统的特点 了解开放手机联盟的目的、组成和性质 了解Android平台的发展历史 掌握Android的特征 掌握Android平台的体系结构

2011-11-14

学生考试系统 asp + access

学生在线考试系统,是我精心整理过的,数据库是access,采用的是dreamweaver 8.0开发工具的,简单易于操作。

2011-06-26

学生作业提交系统ASP+access数据库

开发一个简易的作业提交系统,旨在该系统能完成教师和学生的相关功能。 系统要求: 1. 登录,只允许选课的同学和教师登录。 2. 教师可以发布作业。 3. 学生应该在规定的时间里提交作业。 4. 教师可以下载学生的作业到本地硬盘进行批改,批改过后还可以给相应的同学打分。(可不可以把大家的作业一次下载到本地硬盘) 5. 统计: A. 帮助教师统计每次作业的成绩和作业的提交情况 B. 统计整个学期每个学生作业的提交情况。

2011-05-19

编译原理实验代码 C语言

里面有我整过的实验代码,都有测试数据,具体有Chomsky文法判断、DFA最小化、NFA到DFA的转化、算符优先文法、LL(1)、LR(1)文法的实现等。

2010-06-22

微型计算机原理与接口技术第4版课后答案

这是周和琴、吴秀清编著的第四版的微型计算机原理与接口技术教材的课后习题解答,中国科学技术大学出版社出的。很全面的,欢迎大家来下载。

2010-06-14

操作系统+首次适应算法实现内存的分配与回收

里面有实验题目,实验流程图,实验代码,运行结果,测试用例,很全面的。

2010-06-11

操作系统+银行家算法模拟

里面有实验题目,实验报告,实验流程图,实验代码,运行结果,测试用例,很全面的。

2010-06-11

数据结构各章节实验代码(C语言)

这是我曾经整理的代码,都运行过了,可以的。

2010-06-10

编译原理 Chomsky文法的判断.

这个是编译原理的Chomsky文法的判断,没有采用手动输入,只是将终结符和非终结符固定在代码中了,使用者可以根据使用,适当改变,不难的.

2010-05-18

用C语言实现蟑螂漫步

用C语言做的,使用了c语言的画图函数。新手上路,多多指教!

2010-05-03

好友通讯录java_Acess数据库.rar

这是一个用java语言书写的程序,使用的是Acess数据库。初次上传,多多指教1

2010-05-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除