iOS
爱尚开发
知识是需要沉淀的,沉淀下来的才是你的。
展开
-
API是什么
API:Application Programming Interface 应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件货硬件得意访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。其实,简单点就是收应用程序编程接口参考文档。原创 2016-01-08 10:37:20 · 1039 阅读 · 0 评论 -
NSString中涉及document目录或者沙盒目录常用方法总结
- stringByAppendingPathExtension://这个方法就是给一个字符串路径加上后缀名stringByDeletingLastPathComponent //删除路径中最后一部分stringByDeletingPathExtension //删除路径的后缀名原创 2016-09-05 16:30:17 · 383 阅读 · 0 评论 -
iOS 类别(类目)与延展(扩展)区别讲义
我们在项目中或多或少都会接触到类别,延展,那么到底类别是什么,而延展又是什么呢?今天我们一块来探讨下:类别就是为已存在的类添加新的方法,但是不能添加实例变量。比如系统的类,我们看不到他的.m文件,所以没有办法用直接添加方法的方式去实现。这个时候我们可以使用类别来给它添加一些新的方法供我们使用,再具体点说就是,比如说NSString类有10个方法(假设,具体几个,我也没注意),但是呢,NSStr原创 2016-01-14 17:42:16 · 5143 阅读 · 0 评论 -
XIB之显示在控制台中的冲突约束
不知道大家遇到过那种情况没,就是自己拉的XIB没有约束警告,在真机或者模拟器上也都没有什么错,界面都是对的,不管是在4,5,6,6S,6p等你的界面都是显示正确的,也没有乱,一切看起来是那么的正确,可是在控制台中有。。看下图:如果你和我一样遇到过这种情况,请别急,没事,但是肯定需要改,可能有些同学会感觉又不影响,管它呢,反正我的项目布局是正确的就OK啊,可是我想告诉你第一:这个不解原创 2016-08-26 20:30:17 · 1405 阅读 · 0 评论 -
iOS Provisioning Profile(Certificate)与Code Signing详解
写的太详细,转载过来和大家共享目录(?)[+]引言 关于开发证书配置(Certificates & Identifiers & Provisioning Profiles),相信做 iOS 开发的同学没少被折腾。对于一个 iOS 开发小白、半吊子(比如像我自己)抑或老兵,或多或少会有或曾有过以下不详、疑问、疑惑甚至困惑:什么是A转载 2016-08-26 20:54:13 · 1197 阅读 · 0 评论 -
iOS button.titleLabel和直接设置button setText
今天没事,在写一个下拉菜单的demo的时候,遇到了一个小问题,卡了我好长时间,现在解决了,跟大家分享一下,什么问题呢,就是我在导航条的titleView上设了一个button,这个button上的字是可以变化的,我点击这个button的时候,会下拉一个彩蛋,菜单里有各种item,我选中一个item的时候,应该是让导航条的titleView也跟着变化,我起初是这么干的,设置button的titleL原创 2015-12-30 10:21:41 · 1637 阅读 · 0 评论 -
iOS 多线程技术之NSThread
在项目中,我们难免会用到多线程,使用多线程可以起到提高性能等的问题,今天我参考了网上的一些资料和自己查苹果文档,来说说这个NSThread的使用一:多线程一共有三种方法,NSThread,NSOperation和GCD今天着重讨论NSThread,后续再讨论NSOperation和GCD这三种方法从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单,也是Apple推荐使用的NS原创 2016-01-06 12:58:13 · 423 阅读 · 0 评论 -
通信机制之异步通信和同步通信
同步通信原理 同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。 采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应5~8位转载 2016-01-06 17:00:43 · 6230 阅读 · 1 评论 -
iOS之枚举typedef enum,enum,typedef NS_ENUM.
今天做项目demo,自己无意间需要用到状态,好几种,所以就开始研究了下结构体,之前结构体自己知道,但是在实战项目中自己还是第一次用,跟大家分享一下,结构体呦两种定义方式://typedef NS_ENUM(NSUInteger,YAODropVIewState) {// YAODropVIewStateWillOpen,// YAODropVIewState原创 2015-12-31 17:16:39 · 3372 阅读 · 0 评论 -
NSDecimalNumber之加减乘除用法(钱计算规则)
上周接到需求,说手机端的有一些值和PC是不一致的,总会有点误差,同一个网关,网关也没有给PC做特殊处理,那怎么不一样呢,总有一点误差,那肯定是PC或者客户端的计算问题了呗,于是就着手这个问题开始查,原来是这样的,我们手机端在拿到网关给的数据后都是统一按照float来处理的,float是一个坑啊,一个大坑,比如说我们在拿到网关的数据是222.22,经过float处理后,我们想着应该就是222.22啊原创 2016-12-11 16:11:09 · 6161 阅读 · 1 评论 -
XIB创建的子view拉到父View上黑屏问题
Autoresizing,之前一直是听说,但是自己没有上手过,自己拉XIB的时候会用AutoLayout,挺强大的,今天是这样的,一个同事在Xcode8.1上拉了一个用XIB搭建的VIew,在Xcode8.1上都是正常使用的,但是在Xcode8上不能正常用,出现大块的黑屏幕,在另一个同事手机和电脑上也都是正常的,然后又与安装Xcode8.1电脑的同事确认了下,然后得出结论,Xcode的问题,出现问原创 2016-11-16 19:57:16 · 583 阅读 · 0 评论 -
iOS 开发之#Import #include @class区别
这个我在之前有说过,这次再详细说一下#import与#include区别:1,一般来说,导入objective-C头文件时用#import, 包含c/c++头文件时用#import2.#import确保一个头文件只能被导入一次,这使你在地柜包涵中不会出现问题,所以 #import比起#include的好处是不会引起交叉编译#import与@class区别:1.#Import会包原创 2016-01-04 13:05:41 · 1137 阅读 · 0 评论 -
iOS Runtime详解之给Category添加成员变量(怎么设置关联对象)
好吧,没办法,在项目中我想用category,至于为什么用category而不用继承,这个我在这就不多说了,我的category博客中特意讲过,在这里就不赘述,我用了category,但是想要给我这个类增加几个属性(成员变量),思来想去,往上说用runtime,可是自己都没用过,感觉好高大上,自己都不敢直视,可是没办法,必须得直视,好吧,看了看官方文档,在网上又看了些资料,最后还是入了Runtim原创 2016-01-18 16:08:53 · 3137 阅读 · 0 评论 -
编程算法总结(冒泡排序,选择排序,快排)
项目需要,自己上学的时候接触过一些算法,我记得当时算法那门考了系里最高分,98分,想着没什么用呢,谁知道这两天就用到了,项目中涉及到了排序,我就重温了一下算法,说到算法,就我个人而言,第一就是想到了冒泡(最简单,也是最容易理解),但是项目中我没用冒泡,怕同事看到了说我低级,虽然算法只有老大写(别的同事都不写),我用了选择排序,显得难了点,感觉有些技术含量的,下边就是我用的选择排序算法:- (N原创 2016-04-26 15:27:31 · 5085 阅读 · 0 评论 -
iOS 学会使用delegate和block<二>
继上篇我们聊的delegate后,这节我们一块聊聊这个block,在开发中block我用到了两种情况,要不就是通过block来传值,要不就是通过block来传事件,下边我讲分两部分来讲block的传值和block的传事件。第一:block传值block传值在我理解来就是比如说是两个界面,界面之间的传值,一个界面的值生成后,通过block保存起来,然后,block里边就有第一个界面的值了,有原创 2015-12-22 16:53:56 · 1907 阅读 · 0 评论 -
编写高质量的iOS代码(持续更新)
1.多用字面量语法,少用与之等价的方法1.字面量字符串的创建NSString *str =@"I Love You!";NSString *str = [[NSString alloc] init....]上边的一种就是字面量2.字面数值 NSNumber *intNum = [NSNumbernumberWithInt:1];原创 2017-01-23 14:19:17 · 482 阅读 · 0 评论 -
apple API常用英语名词
苹果API常用英语名词0. indicating 决定1.in order to 以便2.rectangle bounds 矩形尺寸3.applied 应用4.entirety 全部5.technique 方法6.truncating 截短7.wrapping 换行8.string 字符串9.familiar style 简体10.The st原创 2016-01-18 13:48:03 · 628 阅读 · 0 评论 -
iOS 学会使用delegate和block<一>
毕业将近半年了,从事iOS开发也一年多了,入了iOS这个行列,算是一个明智之举吧,iOS开发带给我了很多欢乐,当然了,也给了我物质上很大的满足,今天我来给说一下自己对delegate和block的理解,说的不对的地方,希望大家指正。 delegate和block我感觉是一样的,但是block比delegate使用的简单,而delegate比block理解起来简单,所以说,如果跟我一样是原创 2015-12-22 12:32:23 · 3899 阅读 · 3 评论 -
stringByAppendingPathComponent与stringByAppendingString区别
这两个方法都是在一个字符串中添加一个字符串组成一个新的字符串,有什么区别呢?文档上就是这样写的,一般来说,就是说用pathComponent这个会自动加上“/”组成一个路径,如果你加了多个“/”,它还是会返回一个正确的路径的,只会返回一个“/”。而appendingString就是你给它什么,它不会加什么判断,都是原样给你加上去的,具体情况自己把握着用。原创 2016-09-05 16:12:53 · 825 阅读 · 0 评论 -
初步认识Weex
原文地址: http://blog.csdn.net/jasonblog/article/details/51863173目录(?)[+]原文地址:https://yq.aliyun.com/articles/57554前言相比较于React Native的“Learn once, write anywhere”,Weex的口号是“Wr转载 2016-09-12 20:45:33 · 1235 阅读 · 0 评论 -
NSJSONReadingMutableContainers,NSJSONReadingMutableLeaves,NSJSONReadingAllowFragments
转载地址:http://www.cocoachina.com/bbs/read.php?tid=110907#959188首先用代码来说明NSJSONReadingMutableContainers的作用: 复制代码NSString *str = @"{\"name\":\"kaixuan_166\"}"; NSMutableDictionary转载 2016-08-30 10:56:29 · 2546 阅读 · 0 评论 -
iOS 横竖屏切换(源码讲解,图加源码)
现在手头上项目我们团队干了半年了,还有一个月就要提交App Store了,突然间,产品那边跟我们说某一个,某一个界面需要支持横屏,我只能说真是奇葩,团队中的人都在抱怨说没法做,因为之前没有这个需求,做了半年了,你要是之前就说可以支持横屏,框架就不会这么写了,。。。确实,产品真坑,但是既然提出来了,你就得做吧,抱怨是没什么用的,还是好好研究比较重要,我就把这个活接了下来,看网上别人的思想,看苹果文档原创 2016-06-29 09:47:15 · 1266 阅读 · 0 评论 -
业务知识
1.__bridge 什么鬼?__bridge: 当我们需要转换id和void类型的时候 通常会想到__bridge当ARC有效时(当然了,当前我们基本都是用的ARC),有三种转化方式:1.__bridge __bridge_retained __bridge_transferARC无效时 对应的代码id obj = [[NSObject alloc]init];voi原创 2016-02-24 09:23:32 · 559 阅读 · 0 评论 -
iOS下载图片之SDWebImage的研究与使用
API documentation is available at [CocoaDocs - SDWebImage](http://cocoadocs.org/docsets/SDWebImage/)### Using UIImageView+WebCache category with UITableViewJust #import the UIImageView+WebCach原创 2016-01-13 14:46:46 · 503 阅读 · 0 评论 -
iOS 同步 异步 并发 并行 多线程的讲解与区别
1. 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥2. 互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。3. 同步:进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说明:就是前一个进程的输出作为后一个进程的输入,当第一个进程没有输出时第二个进程必须等待。具有同步转载 2016-01-06 17:27:40 · 7433 阅读 · 1 评论 -
浅析NSSet与NSArray之间的区别
相信我们大多数人都是会在项目中用到NSArray,但是用到NSSet的应该是很少的,而NSArray和NSSet都作为一个集合,为什么我们在iOS的项目中很少用NSSet呢?今天我查了一些资料,看了看NSArray和NSSet之间的区别: 首先NSArray存的数据是有序排列的,并且数组中的元素可以一样,而NSSet存的数据是无序的,而且元素是不能一样的,也就是在NSSet中的元素是原创 2015-12-28 13:45:51 · 1045 阅读 · 0 评论 -
ios NSCharacterSet使用讲解
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. - (void)viewDidLoad { [super viewDidLoad]; [self test]转载 2015-12-25 18:00:16 · 1725 阅读 · 0 评论 -
iOS xcode 文件中常见后缀名的释义
进了一家新公司,看了公司的源码,文件中有好几种后缀名,因为自己没接触过之前,所以自己在网上搜了一些资料,知道了其中的奥妙,给大家分享一下.h 这个大家肯定都知道,就是头文件声明,在头文件中,我们可以声明方法,变量等.m 这个就是文件的实现部分,在oc中,也可以在.m中写一些私有方法或者私有变量(这个就扯到了一个问题,OC中有私有方法?答案是没有,但是我们可以在.m中写,这样可以实现java原创 2015-12-23 09:57:43 · 3897 阅读 · 0 评论 -
iOS 学会使用通知(notification)
继之间我们讲的delegate和block之后,今天我们一块来研讨一下notification,在实际开发中,我一般很少用到通知,因为如果项目中大量用到通知的话,就会大大降低效率,除非万不得已,跨界面之间的传递,因为notificationcenter就是一个单例,所以可以全局使用,也就是说只有在这个时候,我才会用到通知,下边我给一个demo,具体实现的现象就是我创建了三个controller,f原创 2015-12-24 08:53:43 · 1201 阅读 · 0 评论 -
深入理解堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两原创 2016-02-16 15:05:40 · 524 阅读 · 0 评论 -
runLoop详解
Objective-C之run loop详解 做了一年多的IOS开发,对IOS和Objective-C深层次的了解还十分有限,大多还停留在会用API的级别,这是件挺可悲的事情。想学好一门语言还是需要深层次的了解它,这样才能在使用的时候得心应手,出现各种怪异的问题时不至于不知所措。废话少说,进入今天的正题。不知道大家有没有想过这个问题,一个应用开始运行以后放在那里,如果不对它转载 2016-07-29 10:37:14 · 392 阅读 · 0 评论 -
程序中引入crash日志文件
看安卓crash后都有什么crash日志文件,直接就锁定在哪crash,为什么crash,感觉不错,自己也摸索一下,在iOS程序中我也写了一个crash日志文件,便于更好的监测和修复项目。我在程序入口的时候写入下边的代码://异常处理函数static NSString* CRASHLOG_PATH = @"__pbmobilecrash.log";void UncaughtExcept原创 2016-07-29 11:06:06 · 336 阅读 · 0 评论 -
IOS XIB自定义View
我们可以用xib来自定义cell,自定义viewController,可是我之前还没有用xib来自定义View,下边是一个大牛写的,很通透,转给大家分享一般自定义View 代码方式 有 在初始化的时候添加 子Views- (id)initWithFrame:(CGRect)frame { self = [super initWith原创 2016-07-20 09:41:26 · 383 阅读 · 0 评论 -
KVO详解
今天下班了,看了一天的KVO,明天写篇博客和大家分享下原创 2016-07-20 17:44:35 · 315 阅读 · 0 评论 -
UIView的layoutSubviews和drawRect方法何时调用
转自:http://jianyu996.blog.163.com/blog/static/112114555201305113018814/首先两个方法都是异步执行。layoutSubviews方便数据计算,drawRect方便视图重绘。 layoutSubviews在以下情况下会被调用: 1、init初始化不会触发layoutSubviews。2转载 2016-08-01 14:42:06 · 352 阅读 · 0 评论 -
CGContextTranslateCTM,CGContextScaleCTM,CGContextRotateCTM详解
在看到这几个函数的第一感觉是什么 translate 移动 scale 缩放 rotate 旋转 ,对,这就是我的第一感觉,先知道这些方法的意思是什么,至于怎么用,从文档中我们也不难发现,是这样的:首先跟大家说一个注意点,以变换CTM之前(也就是在调用这些方法之前),我们需要保存图形状态(调用之前我说的那你个 CGContextSaveGState()),以便绘制后能恢复( CGContext原创 2016-08-05 17:08:36 · 5849 阅读 · 0 评论 -
NSContraint改变约束
今天客户新需求,不对,应该说是一些客户有新的需求,之前都是一个xib布局好的view现在需要变化了,一些客户需要在某个地方多几个label,button什么的,某些客户需要某些地方多几个imageView什么的,好吧,之前都是一个XIB,第一感觉是难道是需要写多个XIB吗?我想着实在不行再这样写吧,因为这样虽然是肯定可以达到效果,可是管理起来不容易,程序中多了xib加载速度会变慢,种种考虑,感觉肯原创 2016-08-18 15:12:52 · 414 阅读 · 0 评论 -
字典,数组转化为JsonStr
之前博客中有讲过jsonStr转化为数组,字典,今天有需求是需要把字典,数组转化为jsonStr,看下边:1.思路:我们在碰到这个需求的时候,我们首先应该想到的是万能的NSData,对,为什么说它万能呢?很多数据类型之间都是无法直接转化的,我们需要通过NSData转化为data,然后再通过NSData转化为我们想要的数据类型,就是这个NSData作为桥梁。2.具体实现:1.dict原创 2016-08-29 18:48:48 · 1494 阅读 · 0 评论 -
cocoaPods 安装及使用最新版教程
1.进入命令窗口,移除之前的ruby环境,输入gem sources --remove https://rubygems.org/出现 https://rubygems.org/ removed from sources代表第一步执行成功,接着进入第二步操作。2.安装ruby环境,输入gem sources -a https://ruby.taobao.or原创 2015-12-21 17:14:11 · 658 阅读 · 0 评论