自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(301)
  • 收藏
  • 关注

原创 深拷贝,浅拷贝,原来如此

Cat *cat = [[Cat alloc]init];        Persion *p = [[Persion alloc]init];        NSLog(@"%p",cat);        NSMutableString *string = [NSMutableString stringWithFormat:@"汉斯哈哈哈"];        cat.c_nam

2017-06-28 17:26:18 310

原创 Mac android 入门初探

MAC端开发Android入门级,适配eclipse安卓开发工具,跳了好多坑,还好网上都有问题的解决方案,那么学了这么多还是在布局的迷雾中,懵懵懂懂的写了一个聊天界面,突然发现,其实有时候安卓的布局要比iOS的简单的好多的。以此图为例,很明显这是一个简单的聊天界面,在iOS的开发过程中避免不了各种代理各种回调,但是Android只需要做一个adapter就可以了。自定义ListView

2017-06-05 16:33:34 299

原创 KIF demo小试

效果图:自动测试集成效果演示:                                                                                           我是用cocoaPod集成的kif框架的,初试KIF的时候入了很多坑,:KIF 利用 Apple 给所有控件提供的辅助属性 accessibility attributes 来

2017-05-04 18:17:45 824

原创 iOS 10 通知使用小结

无论使用远程通知或者本地通知,第一步肯定是获取用户权限,进行通知注册:-(void)setupNotifition:(UIApplication *)application{    if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) {        //iOS10特有        UNUserNoti

2017-03-23 13:42:33 799

原创 车牌号识别大全

后台车牌认证,需要前段代码先过滤一遍,不搜不知道,一搜吓一跳。原来我天朝的车牌号也是“乱七八糟五花八门”:-(BOOL)isCarNumber:(NSString*)num{    NSString *regNormal = @"^[京|津|沪|渝|冀|豫|云|辽|黑|湘|皖|鲁|新|苏|浙|赣|鄂|桂|甘|晋|蒙|陕|吉|闽|贵|粤|青|藏|川|宁|琼]{1}[a-zA-Z]{1

2017-02-06 10:07:58 3359 1

原创 淘宝详情界面的头部视图被覆盖的效果

效果图:代码:- (void)viewDidLoad {    [super viewDidLoad];        self.title = @"测试";    self.tableView.backgroundColor  = [UIColor whiteColor];    self.tableView = [[UITableView alloc]

2017-01-17 16:38:29 446

原创 播放提示音

// 1.播放提示音    SystemSoundID soundID;    NSString *strSoundFile = [[NSBundle st_qrcodeControllerBundle] pathForResource:@"st_noticeMusic" ofType:@"wav"];    if (strSoundFile) {        AudioServ

2016-12-29 17:27:22 533

原创 https iOS端需要做的事情

公司还没有搞证书,朋友问起来这个事情了,就用他们的服务器测试了一把。网上资料:http://blog.csdn.net/songchunmin_/article/details/52259526然后就是各种测试了。afn3.0:配置好之后,可以网络请求:而且info.plist文件中这个配置是不需要的:具体原理性的东西,请参考大神资料,这个方法是亲测可使

2016-12-07 11:51:21 345

原创 高德持续定位疑问??

公司需要定制一款为数据部门同事采集位置信息的应用,但是需求是再无网络情况下的持续定位。数据上传以及数据补发。按照正常逻辑很快时间就做完了,使用的是高德的定位SDK包,代码如下:+(instancetype)sharedManager {    static dispatch_once_t onceToken;    static MobsLocationManager *_single

2016-12-07 11:31:33 936

原创 swift3.0使用总结

上周swif3.0重写了一个公司的内部工具。查询资料:http://www.qingpingshan.com/rjbc/swift/156809.html。语法非常精炼。结构很是完美,用上手的话就懒得用OC写项目了。但是由于 是3.0新出的,相比其他版本的话改动还是很大的。所以以前很多第三方框架都是不能用的。或者是报错的,譬如 Alamofire。SwiftyJSON。SnapKit。上面

2016-12-05 11:52:22 447

原创 xcode命名自动加上前缀

添加前缀原因:1.与公司绑定,证明是公司项目。2.类多了容易造成安全隐患。3.它能够以直接的方式编码一些信息以供未来的回溯……………………

2016-12-01 17:27:48 499

原创 swift3.0 导入高德的SDK

测试使用swift写公司的简单项目, 采用cocoapods的方式导入高德地图是个很方便的方式,但是高德地图并不提供源码导入,pod update之后看到的依然是个framework。坑的是没有对应的module!!!这里介绍最简单的方式,新建一个oc的新类,#import ,最后再删除这个无用的oc类即可。结论,高德地图采用头文件的方式(oc混编)导入就ok了

2016-11-28 09:27:04 285

原创 Pofile

platform :ios, '8.0'use_frameworks!target 'ZHZPrivateLibraries'dopod 'AFNetworking' pod 'Masonry'pod 'iCarousel'pod 'MJRefresh'pod 'FMDB'pod 'SDWebImage'pod 'XHTagView'

2016-11-25 09:24:30 370

原创 swift3.0 逃逸的“闭包”

首先了解一下@escaping 和 @noescape 的含义,在swift2中,你可能遇到过@noescape属性,不过在swift3.0中已经被移除了(原因很简单:很简单,在swift3.0中@noescape被用作一个默认值),替而换之的是@escaping。逃逸的闭包理解:如果一个闭包被作为一个参数传递给一个函数,并且在函数return之后才被唤起执行,那么这个闭包是逃逸闭包。并且这个

2016-11-23 16:32:56 2330

原创 swift as as! as?详情

苹果官方文档:swift   上篇文章了解了 “ ?”和“ !”的区别,看这个题目差不多也是和?!有关系的???摘自中文api的话:仅当一个值的类型在运行时(runtime)和as模式右边的指定类型一致 - 或者是该类型的子类 - 的情况下,才会匹配这个值。如果匹配成功,被匹配的值的类型被转换成 as 模式左边指定的模式,也就是类型强转。1.   as:字面理解就是有保证的转换,从

2016-11-22 14:57:16 393

原创 swift的惊喜与疑问

先上几张图片:先说swift疑问,即? 上面两张图就很好的反应了一个问题,即所有Var (变量)声明属性的时候在属性类型后面都会添加一个问号?官方解释:可选类型即Optional。Optional :在使用Optional值的时候需要在具体的操作,比如调用方法、属性、下标索引等前面需要加上一个?,经喵神指正,”Optional Chaining的问号的意思是询问是否响应后面这个方法

2016-11-22 14:31:16 256

原创 swift3.0回首guard的奇妙之处

看源码发现了这个关键字:guard一直没有研究透这个用法,就知道这只是一个判断条件,然后else是条件不满足,下面的是条件都是满足之后执行的。查了官方解释:与if语句相同的是,guard也是基于一个表达式的布尔值去判断一段代码是否该被执行。与if语句不同的是,guard只有在条件不满足的时候才会执行这段代码。你可以把guard近似的看做是Assert,但是你可以优雅的退出而非崩溃。

2016-11-22 14:05:15 256

原创 没有宏定义的swift???

Swift作为一款更加安全的语言, 放弃了C语言中的宏定义, 有效的防止预编译时代码宏替换的安全隐患, 但是也并非不能进行宏定义。创建一个swift的源文件,就是分类文件,然后:所谓swift方法的宏定义无非就是调用swift中的API 或者进行二次封装;打印调试信息  prient在模拟器或者真机调试的时候我们都是以DeBug模式走的,那么~~

2016-11-22 13:23:30 611

原创 swift3.0解疑@objc

根本问题要追到OC——swift互调用的点上,在OC使用的过程中我们都知道是基于运行时的,那么在Swift使用过程中,因为swift追求性能所以就不可能在运行时去查找这个类。 也就是说 Swift 类型的成员或者方法在编译时就已经决定,而运行时便不再需要经过一次查找,而可以直接使用。那么在Swift调用OC时没有问题,如果OC调用swift代码的时候怎么办呢??解决起来也很简单,在 Swi

2016-11-22 11:39:15 1341

原创 swift3.0访问控制

去年研究了一段swift,今年swift3.0出来之后还没有怎么研究这个,在网上下了几个3.0的源码进行分析,发现多了这个关键字fileprivate。当时就是一脸的懵逼,然后就查各种资料:swift访问控制(fileprivate,private,internal,public,open)原来3.0新增了两个修饰符权限:fileprivate  open那么这五个权限修饰符的

2016-11-22 10:03:18 992

原创 UICollectionView的头部悬停效果

帮朋友协议一个小demo,集合视图的头部悬停效果。顺便学习一下:都知道在列表中的头部视图是可以悬停的。这个效果是很常用的。那么集合视图如何实现头部悬停呢???其实就是----》UICollectionViewFlowLayout他咯,因为所有的集合视图布局都是通过它来产生各种效果的 包括瀑布流,环形 矩形等效果,那么我们就重写这个类。重写之前我们先看一下效果:首先是实现有头部视图的

2016-11-18 16:13:26 2880

原创 FMDB 数据迁移即数据库增加新字段

最近公司需要新项目,需要数据持久化 ,使用的是FMDB操作Sqlite,在正常使用过程中没有什么毛病的,但是如果一旦需求改了 需要增加字段的时候就必须要重新写 或者用户重新卸载安装,这就会造成用户数据丢失。刚开始预定方案是判断版本号之后,对于原先数据库里面的数据读出来然后新增字段的数据进行写入。这样就会保存原先的数据。最近在找这方面的资料,发现了这个东西:pod 'FMDBMigrationM

2016-11-17 14:31:15 1710

原创 数据库简单使用之Realm入门

这两天研究数据持久化方案,FMDB MR 都简单的用过一些,偶然知道还要一个Realm,就在网上试试 写了一个demo:pod 'Realm'即可,对于OC或者Swift的选择,个人喜好。那么创建数据库:配置数据路信息:1.增:2.删3.查:4.改,而Realm的数据模型化操作的便利性就体现在对数据

2016-11-16 17:04:44 319

原创 Xcode8调试CoreData应用MagicRecord简单使用。

项目应用数据持久化的时候,使用的是FMDB。数据存放结构总感觉心里不爽,就研究这个coredata,以前写过一些demo都是直接使用的,最近因为这个研究MR 的时候,创建实体对象怎么都找不到生成model的方法,原来这个地方变了:然后 现在改成这样就可以了:但是呢 你就会发现 多了四个文件:原先生成的时候一直是swift的文件的,懵逼的状态。最后才知道:原来生成

2016-11-09 10:32:58 1473 1

原创 锁屏界面

有一种蛋疼的需求,就是想在锁屏的时候实现某些东西以及交互,那么 能力所能及的地方就是音乐的锁屏界面,或者本地通知的界面。这两个都可以实现锁屏交互;通知的话,适配一下iOS10就可以了。锁屏界面的话就是比较麻烦的事情了,一般锁屏界面交互视为音频播放即后台播放打开的权限,而且你会发现在导入框架的时候是这样的:#import 而且远程控制的时候所定义的空间交互:所以想要实现这个东

2016-11-08 17:36:53 410

原创 AFN 内存泄露的情况

内部项目完成之后在测试性能的时候,出现了小红叉:然后选择 leakchecks 一直定位不出内存泄露的代码:只是在这个地方发现了这个:大概意思就是说网络请求的问题,然后在网上找了一些资料,原来懵逼的是封装的网络数据工具在请求的时候懵逼了。重点就在这行代码:请求的每次manager都要创建一次,而且释放不及时或者根本释放不掉,所以这个时候应该写单例了:

2016-11-03 14:55:13 753

原创 block:解决成员变量的循环引用的问题

项目界面简单,但是在界面的跳转过程中,有点小bug那就是界面的转换过程中delloc方法不走,也就是说这个对象没有被释放,那么问题来了??到底什么鬼??用analyze根本检查不出来。instruments工具leaks查找定位不到。多以就舔着脸自己有走了一遍代码。最后查到这个成员变量的问题,因为写成@property(nonatomic,copy)NSStri

2016-11-02 14:59:57 802

原创 应用内跳转~~~~

iOS 8之后应用允许内部跳转到设置界面,但是iOS10之后,只能跳转到 NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];用户第一眼看到这个界面是懵逼的。反正我是懵逼的。所以在进行跳转之前 最好是对本级操作系统进行判断,能跳转的跳不能的话直接给用户提示就行了。-(void)openSet

2016-11-01 16:55:19 486 1

原创 UICollectionView 再 见

第一次认识这个东西,感觉就是tableView的同父异母兄弟,慢慢的接触以及使用的时候,只是简单的流水布局,以及代理各种代理方法的使用。譬如:这样简单的使用其实没有感觉很low,因为需求简单,没有太复杂的UI所以就没有更深入的去了解过一些更“华丽的”东西。获取当你看到这几个需求的时候就会想要深入的了解一些collectionView的布局问题了吧?1.瀑布流式布局:

2016-11-01 15:58:48 203

原创 UITableViewCell的两种复用方式

开发过程中,cell的复用是一直关心的技术点,在cell的使用过程中展现复杂的UI界面一般都是自定义cell,而cell的使用过程中,就会有的倾向于纯代码,或者XIB,而我就是XIB的死党。所以复用cell的方式就会有两种方式,纯代码,XIB//第一中cell的复用标识static  NSString* firseCellid = @"codeFirstCell";纯代码:

2016-10-31 10:29:19 752

原创 根据行间距计算label的高度

//根据行间距计算label的高度(1)- (CGSize)boundingRectWithSize:(CGSize)size WithStr:(NSString*)string andFont:(UIFont *)font andLinespace:(CGFloat)space  {            NSMutableParagraphStyle *style = [[NS

2016-10-27 21:13:44 531

原创 长连接简单使用;

很多IM应用中会用到这个东西,然而真正自己搭建IM应用服务端的很少,一般都是找的IM云,环信,融云,网易云信……不可否认,基础工能实现几家平台做的都很好,有幸用过网易云信,当时只是看别人文档,复制demo代码。搭建界面而已,没有想过内部实现原理。突然研究这个东西的时候,就会发现 长连接不一定只是用在IM上面的,所以了解一下简单实现原理,还是对更多功能的接入,有很大帮助的。Asy

2016-10-26 16:35:56 732

原创 代码片段的转移

相信你们都是用过代码片段,简单方便,但是有个问题就是换电脑或者跳槽之后就得重新自己编辑了。那~~~只能说明自己菜!!!!首先:看效果~本地存放地址:~/Library/Developer/Xcode/UserData/CodeSnippets然后:那么怎么保存呢?这个就多了***专业一点。githup,或者U盘,虽说360云盘完蛋了,不是还有百度网盘了??所

2016-10-26 11:40:24 241

原创 高德3D版SDK使用

具体用法,在高德的使用文档上面解释的很清楚,下面只是标注一点就是:在高德3D的SDk中,使用地图会有很多代理方法,其中就有:/** * @brief 地图加载成功 * @param mapView 地图View */- (void)mapViewDidFinishLoadingMap:(MAMapView *)mapView;这个方法是地图加载成功的回调,add 之后会

2016-10-25 13:24:50 899

原创 tips push从做往右推出

大神处处有,群里特别多,效果不错,记录一下 CATransition *transition = [CATransition animation];    transition.duration = 0.5f;    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingF

2016-09-27 14:31:45 256

原创 iPad开发2(高仿之路)

昨天看了这篇文章挺好的 前面说过在Ios8之后IPad和iphone很多API都可以共用了,今天就学习了一下这个控制器:UISplitViewController,视图分割控制器。上次说到: 基本用法:代理:具体需求具体操作吧,我也只是了解一下用法写了一个简单的demo而已。入门足够。吐槽:今年iOS市场,已经疲惫的一塌糊涂,很多小伙伴已经转行H5前段后台,

2016-09-27 11:50:44 271

原创 iPad开发1(高仿之路)

试问:你有多久没有看精品源码了???        看过这篇文章,总结一点:在没有大神在的创业公司或者不是很注重技术的公司,想要学习到一些大神的经验,难上加难。索性还有MJ,偶尔翻一下他讲的demo实例,顿时也是五体投地,茅塞顿开。        了解了Java,安卓,H5标签,还是感觉iOS----》OC更容易理解一点,索性就跟着MJ的思路,敲了一遍代码:iPad美团高仿。之所以选择

2016-09-26 17:21:12 304

原创 数据转模型

在开发过程中用到的最多的就是数据转模型了,有时候简单点的都是面向字典开发,如果数据字段非常复杂层级结构多的话这个时候写起来就有点麻烦了,那么MJExtension,JSONModel,YYModel,Mantle就派上用场了,或者自定义的话好像也可以的不过,这个时候就看你项目数据结构了,如果真的复杂而且独特的话,联系一下runtime也是不错的,反正我不会~~~     言归正传:我先前一直使

2016-09-22 17:51:32 648

原创 Appdelegate的代理方法简单解析

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions这个方法,应该都不会陌生吧?自定义推送或者URL Schemes的时候用这个用的最多的~LaunchOptions这个字典查看官方文档是这么解释的:(查看官方文档方法:Al

2016-09-21 16:54:35 628

原创 应用间跳转问题

昨天跟朋友视频,帮他解决的问题就是应用间跳转以及传参的问题!帮他完成了一个demo,他看的也是迷糊的(自己太菜讲不清除)。就在这系统的总结一些东西。首先看一张图片:这两个字段:一个是白名单(你即将打开的APP的URL Schemes的值)这是iOS9以后必须设置的。一个是URL Schemes这个类似于你应用的唯一标示别的APP调用的时候需要知道你这个字段的值。打开应用的话需要

2016-09-21 16:18:32 210

空空如也

空空如也

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

TA关注的人

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