IOS开发实用技巧
文章平均质量分 67
SniperLife
行多远,方为执着;思多远,方为远见。
展开
-
ios之牛人谈第三方开源库的吐槽和备忘
iOS第三方开源库的吐槽和备忘做iOS开发总会接触到一些第三方库,这里整理一下,做一些吐槽。目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code、SourceForge等地方。由于Github社区太过主流,这里主要介绍一下Github里面流行的iOS库。首先整理了一份Github上排名靠前的iOS库(大概600个repos)转载 2014-12-12 18:10:05 · 867 阅读 · 0 评论 -
ios之开发中使用频率很高的宏定义-提高设备屏幕适配以及开发效率
// log#define APP_Log(...) NSLog(__VA_ARGS__)// assert#ifdef ENABLE_ASSERT_STOP#define APP_ASSERT_STOP {LogRed(@"APP_ASSERT_STOP"); NSAssert1(NO, @" \n\n\n===== APP Assert. ==原创 2014-11-24 18:37:35 · 1352 阅读 · 0 评论 -
ios之使用录音功能和设置音效播放
录音 功能的实现(依然需要导入音频框架) AVAudioSession * session = [[AVAudioSession alloc]init]; NSError * error = nil; [session setCategory:@"AVAudioSessionCategoryPlayAndRecord" error:&error]; N原创 2014-11-07 08:52:28 · 947 阅读 · 0 评论 -
ios之block代码块的简单使用 函数回调
// block 的简单使用demo 首先创建两个ViewController#import "RootViewController.h"#import "SencondViewController.h"typedef void(^myBlock)(int ,UIButton*);@interface RootViewController (){ UILabel *label;原创 2014-11-06 20:05:44 · 1634 阅读 · 0 评论 -
ios之开发屏幕适配和系统版本适配
ios软件开发过程中很重要的一点是对系统和屏幕进行适配对系统的适配主要是IOS7以后和之前以及IOS8新增特性,屏幕适配主要是对不同设备采用不同的布局以最佳展示效果展现给用户。针对系统的适配:IOS7以后和之前#define IOSVersion [[[UIDevice currentDevice] systemVersion]原创 2014-11-28 08:51:43 · 1510 阅读 · 0 评论 -
ios之高人浅谈设计模式,架构,框架和类库的区别
类比的例子是盖房子,我先从设计模式说起。人类从住山洞到现在的住高楼大厦中间的居住形态经历了无数次的演变,不同的 人用自己的智慧诠释了对居住环境的理解,并且由于有了文字这些经验都被记录下来了。现在打个比方,如果让学计算机的你在一个深 山老林里,什么都不给你,你能盖出什么样的房子呢?我猜肯定是什么也盖不出来,只能去睡山洞了,为什么呢,因为你什么都没有,没有材料 ,没有工具,甚至没有盖房子的转载 2014-11-21 22:33:07 · 1720 阅读 · 0 评论 -
ios之开发人员须知常见简写英文代表的含义
//NS基本 //MK地图 //CG图形绘制 //AV视音频 //UI视图 //ARC iOS4.2 自动内存管理机制简化内存管理 // iOS iOS(原名:iPhone OS)是由苹果公司为移动设备所开发的操作系统原创 2014-11-21 10:06:22 · 2387 阅读 · 0 评论 -
ios之编码规范详细说明
iOS代码规范:所有代码规范全部遵循苹果sdk的原则,不清楚的请访问苹果SDK文档或下载官方Demo查看。1、工程部分: 将项目中每个功能模块对应的源文件放入同一文件夹下,使用虚拟文件夹。 引用的.a和相关的文件,独立使用文件夹存放,并标明是SDK2、类: 命名:首字母大写,其后每个单词首字母大写,类文件的名字必须与类中主要的@interf原创 2014-11-21 10:00:09 · 974 阅读 · 0 评论 -
ios之良好的代码/工程架构牛人解析
1. 良好的代码/工程结构a.为整个工程创建worksapce。 b.按照权责分门别类存放资源文件:每种类型的资源存放于独立的目录下:图片,声音,配置文件等等。而图片又可以按照类型分别存放在不同的子目录下:全局类型,背景图,logo,登录等等。 c.合理的代码结构。推荐如下的工程目录结构 Core:工程内一些通用的转载 2014-11-21 09:27:18 · 1353 阅读 · 0 评论 -
ios之如何让图片显示成圆形的样式/设置控件边框大小以及颜色
比如说QQ登陆头像显示出来的就是圆形的,但实际上它的图片并非就是圆形,而是通过对layer层进行绘制而成的。说到layer每个控件都会有layer层属性所以可以把任意的控件都可以设置成圆形,或是椭圆型看项目需要而定 UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"头像.png"]]原创 2014-11-20 16:48:28 · 2619 阅读 · 1 评论 -
ios之UIGestureRecognizer手势基础使用解析
UIGestureRecognizer 的子类分别有很多手势,通过 不用的手势可以执行不同的操作,下面来介绍下他们的基本使用方法所有手势配置基本相同,只是针对不同的手势里面有部分属性可以设置,比如说tap点进去看他有两个参数可以设置一个是点击次数,和点击手指数可设置。如果不知道这个手势能配置说明参数,那么点击进入相应的.h 文件查看UITapGestureRecognizer *tapGest原创 2014-11-26 09:29:32 · 1449 阅读 · 0 评论 -
ios之算法-对随机数百分百产生有效不重复处理方法
// 方法一 标准算法 效率最高NSMutableArray *number = [NSMutableArray array]; for (int i = 0; i<20; i++) { [number addObject:[NSNumber numberWithInteger:i+1]]; } for (int j =原创 2014-11-07 17:53:18 · 916 阅读 · 0 评论 -
24种设计模式大全-牛人详解
Longronglin之设计模式:Christopher Alexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。模式描述为:在一定环境中解决某一问题的方案,包括三个基本元素--问题,解决方案和环境。阅读类图和对象图请先学习UML创建模式 结构模式 行为模式创建模式:对类的转载 2014-11-24 22:42:40 · 11533 阅读 · 0 评论 -
ios之Xcode6.1制作静态库
Xcode6.1 制作静态库 1.创建静态库,完成代码输入。2.将需要的头文件设置为public,在工程TARGETS中的BuildPhases添加Headers,在public下加入需要的头文件。3.同时生成真机和模拟器的.a文件,需要在PROJECT中的BuildSettings修改Architectures,在$(ARCHS_STANDARD)后加转载 2014-12-16 19:50:06 · 734 阅读 · 0 评论 -
ios之定制iOS 7中的导航栏和状态栏/颜色/风格/字体/个性自定义
近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7。最新的iOS 7外观上有大量的改动。从开发者的角度来看,导航栏和状态栏就发生了明显的变化。状态栏现在是半透明的了,这也就意味着导航栏会显示在状态栏后面。有些情况下,导航栏的背景图片可以延伸显示到状态栏后面。 之前我曾经写过一篇关于如何定制导航栏的文章。不过现在是时候对其进行更新了。下面就是本文将要介绍的内容:转载 2014-12-11 10:03:40 · 1760 阅读 · 0 评论 -
ios之Xcode6手动创建Prefix.pch文件/PCH FileF创建/图文教程
1.先创建PCH File 下图是创建步骤2.在Save As 输入PCH文件名(标准规范是 项目工程名-Prefix)然后选择Target 点击创建3.点击工程名--- >TAGETS --> Build Settings -------------------------> 搜索prefix ------ 找到之后双击编辑配置路径原创 2014-12-10 16:51:51 · 904 阅读 · 0 评论 -
ios之理解 Objective-C 的 ARC
自动引用计数(Automatic Reference Counting, ARC)把压在程序员们肩头的管理内存的重担卸除了不少,更不用说让跟踪内存泄漏那样的烦心事也少了很多。不过,虽然ARC很棒,我们仍然不能完全把内存管理这回事儿抛在脑后。这篇文章将要讨论以下方面的问题,帮助大家快速进入ARC的世界。在ARC出现以前,程序员们只能靠retain/relese/autor转载 2014-12-08 16:55:04 · 602 阅读 · 0 评论 -
ios之Objective-C类族和工厂模式
相信大家都了解GoF的《Design Patterns》中提到的23种设计模式,其中将常见的设计模式分为三大类:创建型模式、行为型模式、结构型模式。而在《Clean Code》中也提到建造酒店的例子,系统中对象的构建和使用应当分离开,那么应该怎么构建对象更加整洁和符合使用场景就很重要。在iOS的系统类库中也有一种方式使得开发者不必关注类中具体的存储实现,但可以根据不同需求场景创建出合适的对转载 2014-12-09 09:39:14 · 905 阅读 · 0 评论 -
ios之UITabBarItem显示真实自定义的图片而非颜色填充
让TabBarItem 显示出我们设置的图片的真实样子,需要看以下设置方法在AppDelegate.h中,拿到所有的item然后统一设置成自定义的图片分别是选中和未选中,针对ios7以后_tabBarController = [[UITabBarController alloc]init]; [_tabBarController setViewControllers:@[rec原创 2014-12-06 19:36:59 · 1548 阅读 · 0 评论 -
ios之NSURLConnection网络请求数据/GET与POST方法
目前可能只是单纯的贴上了一些demo的代码,但是这些代码都是请求数据应该是最基础的使用方法吧,在项目的实际开发中可能用到系统的会非常少,一般都是采用别人非常成熟的第三方开源库来实现数据请求,目前常用的第三方网络请求主要是以下几个:HTTP相比较之下,AFNetworking是目前最优秀的一个了:轻量、易用、使用者多、开发者有在积极维护。在AFN出现之前,这个角色是由ASIHTTPRequest扮演原创 2014-12-20 09:37:42 · 1045 阅读 · 0 评论 -
ios之牛人解析如何正确的使用MVC设计模式
随着程序逻辑复杂度的提高,你是否也发现了App中一些ViewController的代码行数急剧增多,达到了2、3千行,甚至更多。这时如果想再添加一点功能或者修改现有逻辑变得让人无比头疼。如果你遇到了这类问题,那是时候停下来了,思考一下如何更好地组织代码,给VC瘦身。本文将会阐述如何结合MVC的思想帮你的VC瘦身同时提高复用和可扩展性。一、开发中常见的现象和缺点iOS中最常见的一种设转载 2014-12-08 14:44:53 · 1239 阅读 · 0 评论 -
ios之经典算法冒泡排序以及优化
一. 算法描述 冒泡排序:依次比较相邻的数据,将小数据放在前,大数据放在后;即第一趟先比较第1个和第2个数,大数在后,小数在前,再比较第2个数与第3个数,大数在后,小数在前,以此类推则将最大的数"滚动"到最后一个位置;第二趟则将次大的数滚动到倒数第二个位置......第n-1(n为无序数据的个数)趟即能完成排序。以下面5个无序的数据为例:40 8 15 18 12 (转载 2014-12-06 20:06:30 · 1679 阅读 · 0 评论 -
ios之Xcode 快捷键大全/使开发更高效
其实就是设置里面的快捷键变成了文字版,刚开始用Xcode是不是发现以前熟悉的开发环境的快捷键都不能用了?怎么快捷运行,停止,编辑等等、都不一样了。快速的掌握这些快捷键,能提供开发的效率。其实快捷键在Xcode的工具栏里都标注有,只是有的符号和你的键盘上的符号对应不起来罢了。希望对大家有帮助可能有些新手刚用mac,不知与windows键对应,现在说明一下,command相当于ms键盘的w转载 2014-12-20 09:20:08 · 902 阅读 · 0 评论 -
ios之Xcode6如何手动创建空工程模板
自从Xcode6升级后,就创建不了空模板了接下来就需要通过简单地几步配置把工程配置成我们熟悉的空模板;1.首先创建Single View Application 2.然后找到工程目录-》Supporting Files ——》找到 info.plist ——》找到里面的加载页面项 Launch screen interface file.. 把属性对应的Value值原创 2014-12-04 09:53:31 · 3190 阅读 · 0 评论 -
ios之UIView执行基础动画Animation使用参数配置
在ios开发中一般用到的基础动画有以下几种,所有的动画参数配置大致相同,但是有时候在开发过程中很少这样配置一般使用代码块比较方便,而且代码也比较简单以下是常用基础动画类型的一个配置#pragma mark -- Action methods- (void)transitionAnimation// 转场动画{ //设置动画名称,方便代理方法判断是哪个动画 [UIView原创 2014-11-26 09:04:07 · 3211 阅读 · 0 评论 -
ios之正则表达式的匹配参数详解
引言 正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个 'b' ”,那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征。转载 2014-11-20 15:39:35 · 3206 阅读 · 0 评论 -
ios之同步请求、异步请求、GET请求、POST请求
1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作,2、异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行3、GET请求,将参数直接写在访问路径上。操作简单,不过容易被外界看到,安全性不高,地址最多255字节;4、POST请求,将参数放到body里转载 2014-11-14 12:53:54 · 516 阅读 · 0 评论 -
ios之KVC机制的使用/ KVO机制使用的概述
KVC是Key Value Coding的缩写,意思是键值编码。在iOS中,提供了一种方法通过使用属性的名称(也就是Key)来间接访问对象的属性方法。说的有的拗口,实际上就是通过类定义我们可以看到类的各种属性,那么使用属性的名称我们就能访问到类实例化后的对象的这个属性值。 这个方法可以不通过getter/setter方法来访问对象的属性。因为一个类的成员变量如果没有提供get转载 2014-11-14 11:45:22 · 640 阅读 · 0 评论 -
ios之NSSet 使用技巧总结
1、集合:集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址;不过NSArray是有序的集合,NSSet是无序的集合。集合是一种哈希表,运用散列算法,查找集合中的元素比数组速度更快,但是它没有顺序。1 NSSet * set = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];转载 2014-11-14 11:41:05 · 1202 阅读 · 0 评论 -
ios之让输入键盘隐藏消失的方法/以及系统通知的实现
/** 方法一:点击return是键盘隐藏 创建的输入框需要设置代理,并让代理遵守这个协议 @interface ServieProgressView () UITextField *textField = [[UITextField alloc]init]; textField.delegate = self;*/#pragma mark - - (BOOL)textF原创 2014-11-11 13:58:58 · 896 阅读 · 0 评论 -
ios之类目/延展/协议作用
类目:有时我们需要在一个已经定义好的类中增加一些方法,而不想去重写该类。比如,当工程已经很大,代码量比较多,或者类中已经包住很多方法,已经有其他代码调用了该类创建对象并使用该类的方法时,可以使用类别对该类扩充新的方法。 注意:类别只能扩充方法,而不能扩充成员变量。延展:1.延展是一种特殊形式的类目2.延展中定义的方法在类本身中实现协议: 协议(protocol)类似于java语原创 2014-11-11 13:43:08 · 733 阅读 · 0 评论 -
ios之第三方开源类库及下载地址
开发几个常用的开源类库及下载地址:1.json json编码解码2.GTMBase64 base64编码解码3.TouchXML xml解析4.SFHFKeychainUtils 安全保存用户密码到keychain中5.MBProgressHUD 很棒的一个加载等待特效框架6.ASIHTTPRequest http等相关协议封装7.EGORefreshTableHe转载 2014-11-10 14:05:49 · 895 阅读 · 0 评论 -
ios之常用第三方开发类库
Reachability 检测网络连接ASIHTTPRequest 网络请求MBProgressHUD 提示效果SVProgressHUD 提示效果ZAActivityBar 提示效果SBJson JSON解析JSONKit JSON解析SDWebImage 图片异步加载及缓存UIActivityIndicator-for-SDWebImage 为SDWebImage显示加载效果转载 2014-11-10 13:56:50 · 960 阅读 · 0 评论 -
ios之常见错误:Apple Mach-O Linker Error
常见错误描述:Apple Mach-O Linker Error这类错误的错误信息最后一行通常如下:Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang failed with exit code 1发生这种错误的原因通常是因为项目中存在同名类造成链接错误。有可能是你存在两个类名称都一样,也可能是因为转载 2014-11-10 11:55:51 · 745 阅读 · 0 评论 -
ios之block和retain cycle (经典)
retain cycle 的产生说到retain cycle,首先要提一下Objective-C的内存管理机制。作为C语言的超集,Objective-C延续了C语言中手动管理内存的方式,但是区别于C++的极其非人道的内存管理,Objective-C提出了一些机制来减少内存管理的难度。 比如:内存计数。在Objective-C中,凡是继承自NSObject的类都提供了两种方法,retain转载 2014-11-10 09:23:24 · 606 阅读 · 0 评论 -
ios之工程中混合使用 ARC 和非ARC 配置方法
【前提知识】ARC:Automatic Reference Counting,自动引用计数在开发 iOS 3 以及之前的版本的项目时我们要自己负责使用引用计数来管理内存,比如要手动 retain、release、autorelease 等,而在其后的版本可以使用 ARC,让系统自己管理内存。【问题】在项目开发过程中我们通常会用到第三方提供的源代码,麻烦的是有些开源项目用的是 ARC,有的用转载 2014-11-07 19:30:10 · 635 阅读 · 0 评论 -
ios之单例类的实现(封堵alloc release retain 等方法)
#import "Superman.h"static Superman *superman = nil;// 定义全局静态变量@implementation Superman// 重写alloc 方法封堵创建方法(调用alloc方法时默认会走allocWithZone这个方法 所以只需封堵allocWithZone 方法即可)+ (id)allocW原创 2014-11-06 19:08:25 · 1385 阅读 · 0 评论 -
ios之关键字retain / copy / mutableCopy 使用技巧
/* copy: 对不可变对象发送copy消息,引用计数加1,同一块内存 对可变对象发送copy消息,开辟另外一块内存空间,和原来的内存无关。原来的对象引用计数不变 retain 不管是可变还是不可变对象发送retain 消息 ,引用计数加1 同一块内存原创 2014-11-07 18:00:30 · 648 阅读 · 0 评论 -
ios之界面之间的数据正逆向/多层次传递方法
1 初始化传值(重写init方法,让后面携带需要传入的数据,然后在对界面初始化,使用这种方法必须要在初始化前就已经有数据了比较适合)#import @interface CustomView : UIView// 需要注意必须在 (.h)对方法进行声明 在外部创建这个类的时候才能看到- (instancetype)initWithFrame:(CGRect)frame with原创 2014-11-17 11:52:11 · 1937 阅读 · 0 评论 -
ios之开发中常用的设计模式介绍
ios开发学习中,经常弄不清楚ios的开发模式,今天我们就来进行简单的总结和探讨~(一)代理模式应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。优势:解耦合敏捷原则:开放-封闭原则实例:tableview的 数据源delegate,通过和protocol的配合,完成委托诉求。列表row个数delegate自定义的delegate转载 2014-11-20 12:53:27 · 624 阅读 · 0 评论