自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

宋波的专栏

在路上

  • 博客(196)
  • 收藏
  • 关注

原创 iOS开发之设置兼容机型

iOS开发中,可能有些比较老的机型不想再适配了,但是通过设置支持的系统版本并不能限制机型。比如我们的需求是,系统适配iOS8及以上,手机适配iPhone4s以后的机型,解决方案如下:1、系统版本适配在General——》Deployment Info——》Deployment Target中选择版本号(比如8.0),这样系统版本低于设置的版本号的手机就不能安装运行此App了。2、手

2017-08-02 17:24:39 3008

原创 iOS汉语转拼音以及按照拼音排序

在iOS中汉语转拼音可以使用系统提供的方法,也可以使用第三方库来实现,但是网上说使用系统方法实现的话性能会比较差,此处只是提供方法,至于选择使用哪种方法,自己看情况而定。1、系统方法主要使用到了方法CFStringTransformNSString *hanziText = @"我是汉字"; if ([hanziText length]) { NSMutableStri

2017-04-24 14:40:47 2564

原创 iOS项目中使用Charts的集成步骤

Charts库是一个优秀的第三方库,用于实现各种图表。GitHub地址这个库是使用swift实现的,集成到OC项目中的方法在github中不太好理解,或者说明不太好懂。这里总结一下,我使用的是CocoaPods,另外两种仅仅是我自己对文档的理解,并没有具体测试,如果有错误的话希望批评指正。一、建议使用CocoaPods来集成,方法很简单,只需要在Podfile文件中加入pod 'Chart

2017-04-10 14:33:52 7556 1

原创 父子控制器总结

父子控制器主要用到下面5个方法1、- (void)addChildViewController:(UIViewController *)childController;添加子控制器,建立父子关系;如果重写此方法,必须在实现中调用父类实现;调用addChildViewController:会自动调用child的willMoveToParentViewController:方法,不

2017-03-31 13:31:42 809

原创 Mac上配置MySQL5.7.17出现问题Access denied解决

配置基本是按照此篇文章可以进行的,但是在配置mysql的过程中遇到一个问题ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)解决办法参见这篇文章,至于问题的原因,我觉得应该是安装mysql的过程中生成的临时密码已过期(即不可使用)造成的,SOF上有大神说原因是mysql中有匿名(a

2016-12-21 17:46:11 3462

原创 CA证书相关的一些基础知识

说明:1和2主要出自苹果文档,3和4主要来自互联网搜索结果。1、证书的格式证书(比如CA的根证书)通常有两种格式(1)二进制格式,一般用于OS X 和 平台的Security framework等密码工具集。二进制格式的证书有许多种名字(包括BER, DER, CER 等等),对应的有许多种扩展名称 (.cer, .der, .crt 等等)。(2)文本格式,一般用于OpenSSL

2016-12-16 13:31:55 4183

转载 iOS开发之静态库.a的制作教程

原文地址:iOS开发之静态库.a的制作教程简介什么是库?库是程序代码的集合,是共享程序代码的一种方式根据源代码的公开情况,库可以分为 2 种类型开源库公开源代码,能看到具体实现比如 SDWebImage 、 AFNetworking闭源库不公开源代码,是经过编译后的二进制文件,看不到具体实现主要分为:静态库、动

2016-09-13 16:39:05 572

转载 IBOutlet对象应该使用strong还是weak修饰

ARC情况下,通常应该使用strong修饰,除非为了避免循环引用的情况。特别是在iOS6之后更应如此,使用weak修饰除了避免循环引用没有其他益处。And the last option I want to point out is the storage type, which can either be strong or weak. In general you should mak

2016-09-02 14:21:58 2522

转载 iOS照片框架

原文地址:iOS照片框架介绍每天,用 iPhone 拍摄的照片数量超过了任何相机。每年 iOS 设备上的显示效果变得越来越好,回到 iPad 刚出现还没有 Retina 显示屏的时代,大屏幕的杀手级功能之一就是可以展示用户照片和浏览器照片库。自从相机成为 iPhone 最重要和最受欢迎的功能开始,对能管理和加工用户照片库中宝贵的照片的应用程序和工具就有着巨大的需求。

2016-07-12 14:18:48 846

转载 warning: Automatic Preferred Max Layout Width before iOS 8.0

解决方案地址:http://stackoverflow.com/questions/25398312/automatic-preferred-max-layout-width-is-not-available-on-ios-versions-prior-to-8下面节选了几个好的解决方案的回答Update 3:This warning can also be trigg

2016-06-24 13:55:00 945

原创 NSObject的load和initialize方法

NSObject中的load和initializeNSObject中的这两个类方法比较特殊,主要用于完成类的加载和初始化。网上有一些很多资料与讲解,苹果的官方文档中也有相关的介绍。这里只是我自己的一些总结,便于以后复习。1、如果只考虑runtime自动调用的话,这两个方法都是最多只会调用一次。注:① 开发者也可以手动调用这两个方法,此时这两个方法的调用就会超过一次;② 所谓的r

2016-04-21 13:41:14 598

原创 Masonry示例Examples使用cocoapods命令pod install之后报错处理

Masonry是iOS平台处理Auto Layout的一个替代方案,我们可以通过官方的例子学习它的使用方法。但是官方demo使用cocoapods命令pod install之后会出现一些问题。1、[!] An error occurred while processing the post-install hook of the Podfile.undefine

2016-04-18 17:07:27 1818 2

原创 在Mac 上配置 React Native环境相关的基础知识

1、Homebrew——》OS X 不可或缺的套件管理器;官网:http://brew.sh/index_zh-cn.html2、nvm是Node Version Manager的缩写,它是nodejs版本管理工具。可以在多个nodejs版本中进行切换,降低了升级nodejs时的成本。即Node Version Manager - Simple bash script to manag

2016-04-14 20:58:00 1569

转载 超全!整理常用的iOS第三方资源

原文地址:超全!整理常用的iOS第三方资源一:第三方插件1:基于响应式编程思想的oc地址:https://github.com/ReactiveCocoa/ReactiveCocoa2:hud提示框地址:https://github.com/jdg/MBProgressHUD3:XML/HTML解析地址:https://github.

2016-03-21 15:11:37 590

转载 iOS通过dSYM文件分析crash

原文地址:iOS通过dSYM文件分析crash我们在ios开发中会碰到的很多crash问题,如果Debug调试模式的话,我们可以往往很容易的根据log的输出定位到导致crash的原因,但对于已经上线的应用,或者是release环境包导致的crash,我们就需要一些特殊的手段来通过crash log进行分析定位了。通过参考网上的一些资料,总结了一下,下面介绍一下通过dSYM文件以

2016-03-10 10:37:44 348

转载 Xcode统计代码行数

如果要统计iOS开发代码,包括头文件的,终端命令进入项目目录下,命令如下find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l  列出每个文件的行数 find . -name "*.m" -or -name "*.h" -or -name 

2016-03-02 09:02:10 576

原创 iOS应用内跳转到App Store详情页或者评论页

要想在App内跳转到特定App的详情页或者评论页,首先需要获取到App的id。在iTunes Connect网站上登陆之后,选择“我的App”,然后点击某个特定的App进入,在App信息的综合信息中,会有一个“Apple ID”的条目,就是一串数字,这个就是对应App的id了。另外在App信息的额外信息中,点击“在 App Store 中查看”会跳转到一个特定链接的页面,这个链接在下文中也会用

2016-02-25 17:24:06 5649

转载 iOS学习笔记——文件操作(NSFileManager)

原文地址:iOS学习笔记——文件操作(NSFileManager)       iOS的沙盒机制,应用只能访问自己应用目录下的文件。iOS不像android,没有SD卡概念,不能直接访问图像、视频等内容。iOS应用产生的内容,如图像、文件、缓存内容等都必须存储在自己的沙盒内。默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。Library包含Cach

2016-01-11 16:49:12 485

转载 IOS 用keychain(钥匙串)保存用户名和密码

原文地址:IOS 用keychain(钥匙串)保存用户名和密码IOS系统中,获取设备唯一标识的方法有很多:一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和数字组成。二.UUID(Universally Unique

2015-11-23 17:05:22 1683

转载 在iOS 8中使用UIAlertController

原文地址:在iOS 8中使用UIAlertControlleriOS 8的新特性之一就是让接口更有适应性、更灵活,因此许多视图控制器的实现方式发生了巨大的变化。全新的UIPresentationController在实现视图控制器间的过渡动画效果和自适应设备尺寸变化效果(比如说旋转)中发挥了重要的作用,它有效地节省了程序员们的工作量(天地良心啊)。还有,某些旧的UIKit控件也同样发生

2015-11-09 09:44:25 639

转载 GCD 深入理解(二)

原文地址:GCD 深入理解(二)转自@nixzhu的GitHub主页(译者:Riven、@nixzhu),原文《Grand Central Dispatch In-Depth: Part 2/2》 欢迎来到GCD深入理解系列教程的第二部分(也是最后一部分)。 在本系列的第一部分中,你已经学到超过你想像的关于并发、线程以及GCD 如何工

2015-10-27 16:54:28 379

转载 GCD 深入理解(一)

原文地址:GCD 深入理解(一)本文由@nixzhu翻译至raywenderlich的《grand-central-dispatch-in-depth-part-1》虽然 GCD 已经出现过一段时间了,但不是每个人都明了其主要内容。这是可以理解的;并发一直很棘手,而 GCD 是基于 C 的 API ,它们就像一组尖锐的棱角戳进 Objective-C 的平滑世界。我们将分两个部

2015-10-27 14:45:27 423

转载 UIStack View如何让你的开发更简单(iOS 9和Xcode 7)

原文地址:UIStack View如何让你的开发更简单(iOS 9和Xcode 7)本文由CocoaChina译者熏修翻译自appcoda.原文:An Introduction to Stack Views in iOS 9 and Xcode 7之前我们阐述了Swift2的新特性。本篇文章的开始我们将涵盖一些iOS9的很酷的新特性。iOS即将到来的新版本会带来很多

2015-10-27 13:17:58 479

转载 深入理解先进的自动布局工具箱

原文地址:先进的自动布局工具箱原文:Advanced Auto Layout Toolbox 在我的上一个项目中,因为是面向公司内部使用的客户端,所以我直接抛弃了iOS5,在项目中大量使用了iOS6中的新特性:自动布局,才发现生活可以如此美好(除了调bug的时候),发张图大家感受一下,下面分别为横屏和竖屏下的布局,再也不要像之前那样适配的死去活来了:horizo

2015-10-26 17:16:53 1016

转载 深入理解Tagged Pointer

原文地址:深入理解Tagged Pointer前言在2013年9月,苹果推出了iPhone5s,与此同时,iPhone5s配备了首个采用64位架构的A7双核处理器,为了节省内存和提高执行效率,苹果提出了Tagged Pointer的概念。对于64位程序,引入Tagged Pointer后,相关逻辑能减少一半的内存占用,以及3倍的访问速度提升,100倍的创建、销毁速度提升

2015-10-23 10:48:07 558

转载 【Objective-C】空指针和野指针

原文地址:【Objective-C】空指针和野指针本文目录一、什么是空指针和野指针二、野指针和空指针例子说明:这个Objective-C专题,是学习iOS开发的前奏,也为了让有面向对象语言开发经验的程序员,能够快速上手Objective-C。如果你还没有编程经验,或者对Objective-C、iOS开发不感兴趣,请忽略。学习本专题之前,建议先学习C语言专题。回到顶部

2015-10-20 13:55:57 824

转载 ARC指南 - strong和weak指针

原文地址:ARC指南 - strong和weak指针参考文献:  iOS ARC 完全指南提示:本文中所说的"实例变量"即是"成员变量","局部变量"即是"本地变量"一、简介ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心

2015-10-20 11:27:12 389

转载 深拷贝和浅拷贝(mutableCopy和Copy)详解

原文地址:深拷贝和浅拷贝(mutableCopy和Copy)详解参考文章:http://www.cnblogs.com/ydhliphonedev/archive/2012/04/27/2473927.html   ios提供了copy和mutablecopy方法,顾名思义,copy就是复制了一个imutable的对象,而mutablecopy就是复制了一个mutable的对象

2015-10-16 13:56:21 436

转载 Mac 下Versions的 svn无法上传 .a 文件的问题

原文地址:Mac 下Versions的 svn无法上传 .a 文件的问题Xcode自带的svn和Versions以及一些其它工具都默认ignore".a"文件。解决办法有两个:方法一:使用命令行添加文件(【转】原文在这)1.打开终端,输入cd,空格,然后将需要上传的.a文件所在的文件夹(不是.a文件)拖拽到终端(此办法无需输入繁琐的路径,快捷方便) ,回车;2.之后再输入如

2015-10-14 13:05:28 390

转载 向iOS开发者介绍C++(一)

原文地址:向iOS开发者介绍C++(一) 你已经精通了Objective-C,并且一直想学更酷的东西?看看这篇文章吧!本文将向iOS开发者介绍C++。稍后我会介绍,Objective-C能够无缝地使用C和C++代码。因此,基于以下几点原因,iOS开发者理解C++将会很有帮助: 1.有时候你想在应用中使用一个用C++编写的库。 2.你可能

2015-10-08 13:15:57 439

转载 iOS安全系列之二:HTTPS进阶

原文地址:iOS安全系列之二:HTTPS进阶上一篇《iOS安全系列之一:HTTPS》被CocoaChina转载,还顺便上了下头条: 打造安全的App!iOS安全系列之 HTTPS,但那篇文章只是介绍了比较偏应用的初级知识,对于想要深入了解HTTPS的同学来说是远远不够的,刚好本人最近工作上也遇到并解决了一些HTTPS相关的问题,以此为契机,决定写这篇更深入介绍HTTPS的文章。

2015-09-25 15:16:58 1401

转载 iOS安全系列之一:HTTPS

原文地址:iOS安全系列之一:HTTPS如何打造一个安全的App?这是每一个移动开发者必须面对的问题。在移动App开发领域,开发工程师对于安全方面的考虑普遍比较欠缺,而由于iOS平台的封闭性,遭遇到的安全问题相比于Android来说要少得多,这就导致了许多iOS开发人员对于安全性方面没有太多的深入,但对于一个合格的软件开发者来说,安全知识是必备知识之一。对于未越狱的iOS设备来

2015-09-25 15:10:07 619

转载 iOS使用CoreMotion实现摇一摇功能

原文地址:iOS使用CoreMotion实现摇一摇功能现在网上介绍的iOS摇一摇功能,基本是以借助系统的ShakeToEdit功能来实现,什么是ShakeToEdit?看下图应该就能懂:  怎么实现?请看以下代码://ViewController 加入以下两方法-(BOOL)canBecomeFirstResponder{//让当前controller

2015-09-21 17:16:37 4401 1

转载 宏定义的黑魔法 - 宏菜鸟起飞手册

原文地址:宏定义的黑魔法 - 宏菜鸟起飞手册宏定义在C系开发中可以说占有举足轻重的作用。底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行。而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似乎对宏的使用和依赖并不多。但是使用宏定义的好处是不言自明的,在节省工作量的同时,代码可读性大大增加。如果想成为一个能写出漂

2015-09-07 09:41:13 481

转载 Cocoa中的位与位运算

原文地址:Cocoa中的位与位运算介绍位操作是程序设计中对位模式或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算).(摘自wikipedia)OC作为c的扩展和超集,位运算自然使用的是c的操作符。c提供了6个位操作符,$

2015-09-06 16:47:43 418

转载 iOS7之定制View Controller切换效果

原文地址:iOS7之定制View Controller切换效果在iOS5和iOS6前,View Controller的切换主要有4种: 1. Push/Pop,NavigationViewController常干的事儿2. Tab,TabViewController点击3. Present Modal,调用ViewController的presentViewController:a

2015-09-06 13:41:53 429

转载 iOS开发中SVN管理工具的使用

原文地址:iOS开发中SVN管理工具的使用SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS转移到Subversion。SVN命令行工具1、从本地导入代码到服务器(第一次初始化导入),在终端中输入:svn import /Use

2015-08-18 13:41:47 2298

转载 在Xcode中使用Git进行源码版本控制

原文地址:在Xcode中使用Git进行源码版本控制 本文翻译自Understanding Git Source Control in Xcode (译者myShire)欢迎您加入我们的翻译小组。 在应用程序开发过程中,很重要的一部分工作就是如何进行源码的版本控制。当代码出现问题时,我们就需要将代码恢复到原先正常的版本。如果是多个人共同开发一个项目,那么代

2015-08-17 13:47:56 383

转载 快快快!27个提升效率的iOS开源库推荐

原文地址:快快快!27个提升效率的iOS开源库推荐我热爱开源,更喜爱那些花费宝贵的业余时间来创造奇迹的开发者们,感谢他们将自己辛苦劳动的成果无偿分享给大家。开源作者和贡献者们,你们太了不起了,感谢你们所付出的一切。鉴于我是收集不全会死星人,这里我根据个人喜好选取了一些iOS的开源库。这些项目的顺序完全随机,每个都棒到爆。绝大多数支持CocoaPods,所以将它们添加到你的Xco

2015-08-12 16:26:49 649

转载 IOS如何使用第三方字体

原文地址:IOS如何使用第三方字体1、从网上下载所需字体的TTF文件。将字体所对应的TTF文件拖入项目中。2、然后在info.plist中添加一个新的键Fonts provided by application, NSArray类型的, 在其对应的item里面的string值为**.TTF,如图:3、接下来就是要知道对应字体的名字FontName了。一个字体

2015-07-21 14:47:33 1255

空空如也

空空如也

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

TA关注的人

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