- 博客(144)
- 资源 (1)
- 收藏
- 关注
原创 搜索框缓存搜索记录
//缓存搜索数组+(void)SearchText :(NSString *)seaTxt{ NSUserDefaults *userDefaultes = [NSUserDefaults standardUserDefaults]; //读取数组NSArray类型的数据 NSArray *myArray = [userDefaultes arrayForKey:@"m
2017-06-30 15:45:31 1170
原创 iOS之解决崩溃Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.
崩溃提示:Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection was mutated while being enumerated.' 当程序出现这个提示的时候,是因为你一边便利数组,又同时修改这个数组里面的内容,导致崩溃,网上的方法如下:NSMut
2017-06-30 15:13:05 867
转载 iOS开发tableView实现单选和复选
iOS开发中,有时候需要实现tableView中cell的单选或者复选,这里举例说明了怎么简单的实现首先自己创建一个列表,实现单选,先定义一个变量记录每次点击的cell的indexPath:@property (assign, nonatomic) NSIndexPath *selIndex;//单选,当前选中的行11然后在下面的代理方法实现代码-(void)tableVi
2017-06-30 09:36:45 507
原创 UITableViewCell上的删除按钮(tableView自带的和自定义的)
#import "ViewController.h"@interface ViewController () UITableViewDataSource,UITableViewDelegate>@property (nonatomic,strong)UITableView *table;@property (nonatomic,strong)NSMuta
2017-06-30 09:33:48 628
转载 下拉框筛选控件
Demo效果:example.gif工程结构图:结构图.png1.模拟组装数据,因为可能是多层的,所以我们这里通过组合模式来组装数据。在MMBaseItem里面我们定义了三个枚举://这个字段我们暂时留着以后扩展,覆盖可能要有些选项不能选择,显示灰色的情况typedef NS_ENUM(NSUInteger, MMPopupView
2017-06-29 16:09:36 727
原创 iOS中多个按钮切换选中状态《三步骤》
当你看到了一排按钮,想实现点击选中某个按钮效果时可参考此笔记。思路:声明一个中间变量来回赋值。第一次点击A按钮时,A按钮选中了,临时的中间按钮被记录为A;第二次点击B按钮时,B按妞被选中了,先把上次的记住的临时按钮A变为了不选中,再把中间按钮又变为B按钮。(如果想要有默认按钮的效果就需要在创建按钮的时候把想要默认的按钮赋予给设置的临时按钮)一、效果图“价
2017-06-29 16:05:43 1430
原创 UITableView 分割线不靠左(未补全),删除多余分割线问题
1.分割线不靠左(未补全)问题图片中可以看到分割线并未补全,添加以下方法-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{ if ([cell respondsT
2017-06-29 16:01:40 341
原创 libxml/tree.h file not found解决办法
(打开第三方项目时,会遇到)项目中用到某个库文件 没有被找到 /Users/heyy/Desktop/ZhaoPin_V1.1-master/ZhaoPin_V1/Resource/GDataXMLNode.h:38:9: fatal error: 'libxml/tree.h' file not found#import 原因:这是因为类库没有链接进来的原因。1 .
2017-06-29 14:52:20 2213
原创 iOS中UITableView的cell点击事件不触发didSelectRowAtIndexPath
iOS中UITableView的cell点击事件不触发didSelectRowAtIndexPath首先分析有几种原因,以及相应的解决方法1、UITableViewCell的userInteractionEnabled设置为NO(ps:这种情况很少发生),导致cell无法点击;2、你的控件没有添加在contentView上面,检查下你添加控件时的代码(或是在ce
2017-06-26 19:23:56 1664
原创 iOS - UICollectionView的使用
一.简单介绍UICollectionView 这个类是iOS6 新引进的API,它的布局更加灵活,简单来说就是多列的UITableView,那么UICollectionView的实现和UITableView的实现基本一样,也是存在datasource和delegate的,其中datasource为view提供数据源,告诉view要显示些什么东西以及如何显示它们,delegate提供一些样式
2017-06-26 17:46:02 358
转载 使用Crashlytics来保存应用崩溃信息
转自唐巧的技术博客 http://blog.devtang.com/blog/2013/07/24/use-crashlytics/使用Crashlytics来保存应用崩溃信息 发表于 2013-07-24 20:56本文首发于 InfoQ,版权归 InfoQ 所有,转载请保留 原文链接。简介Crashlytic 成立于 2011 年,是专门为移动应用开者发提供的保
2017-06-26 15:38:25 271
原创 微信支付上的一些坑
微信支付金额是以分为单位的,这样很多人在传金额的时候是将商品的金额乘以100传给微信,不过这样会导致当客户下单结账的时候付款金额少于商品实际价格一分钱,至于为什么我也没办法理解解决办法:将商品的价格按小数点为区分标识将价格分成两部分,然后再拼接起来NSArray *total_fee_Arr = [total_fee_testcomponentsSeparatedB
2017-06-26 15:26:59 1066
原创 更新迭代版本时版本比较方法
#pragma mark -#pragma mark 版本比较方法//比较版本的方法,在这里我用的是Version来比较的- (BOOL)compareVersionsFormAppStore:(NSString*)AppStoreVersion WithAppVersion:(NSString*)AppVersion{ BOOL littleSunResult = fal
2017-06-26 15:17:54 4474
原创 正则表达式验证用户名、密码、手机号码、身份证
//用户名+ (BOOL) validateUserName:(NSString *)name{ NSString *userNameRegex =@"^[A-Za-z0-9]{3,20}+$"; NSPredicate *userNamePredicate = [NSPredicatepredicateWithFormat:@"SELF MAT
2017-06-26 15:08:52 999
原创 iOS学习之 plist文件的读存
//一、创建plist文件 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); NSString *plistpath = [paths objectAtIndex:0]; NSString *jyzPlist = [plistpa
2017-06-26 15:05:37 225
原创 ios 时间戳 当前时间 相互转化
//一、将当前事件转化成时间戳 NSDate *datenow = [NSDate date]; NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[datenow timeIntervalSince1970]]; UInt32 timeStamp = [timeSp intValue];
2017-06-26 14:59:02 656
原创 ios7之后的适配属性讲解edgesForExtendedLayout、extendedLayoutIncludesOpaqueBars等
ios7版本之后,增加了很多新的属性,其中包括页面起始点从屏幕最左上角(0,0)点开始,这给页面适配带来了很大问题。首先说说纯代码页面:1、edgesForExtendedLayout这个属性我们字面上里面是四周延生,指定边缘要延伸的方向,IOS7鼓励全屏布局模式,默认值是UIRectEdgeAll。没用过的人可能不知道这是什么意思,举例假如我们页面上面有导航了,这个时候页面起
2017-06-26 09:36:13 316
原创 iOS设置translucent引发的导航栏色差和坐标问题
开发项目,在对导航栏barTintColor进行设置时。发现渲染出来的颜色和美工给的效果图会出现偏差,去找了一些资料。发现在iOS7系统以上导航栏多了一个translucent属性。这个属性就是设置导航栏是否具有透明度这个功能。translucent属性默认是YES,也就是具有透明属性。所以我们看到的导航栏背景色与美工给的会有很明显的色差。有两种解决方案:1、取消透明度:[
2017-06-26 09:19:26 1438
原创 做限时抢购的倒计时
思路:让后台传一个抢购截止的时间,然后你写一个方法与当前时间做比较,将相差的时间显示出来//定时器@property(nonatomic,strong)NSTimer *timedSpecialtimer;self.timedSpecialtimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@sel
2017-06-23 11:53:40 632
原创 富文本的使用(让字符串特定字符颜色不同和在字符串上划横线)
+ (NSMutableAttributedString *) transCurrentStr:(NSString *)currentString;{ NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:currentString]; [str addAttribut
2017-06-22 15:45:47 1857
原创 ios输入的数字如果前面有0,保留去掉0之后的数据
-(NSString*) getTheCorrectNum:(NSString*)tempString{ while ([tempString hasPrefix:@"0"]) { tempString = [tempString substringFromIndex:1]; } return tempString;}
2017-06-21 17:25:57 902
原创 -[__NSCFNumber rangeOfCharacterFromSet:]: unrecognized selector sent to instance
-[__NSCFNumber rangeOfCharacterFromSet:]: unrecognized selector sent to instance这个是由于传的参数类型不对所导致,找了半天才找到原因。比如[cell setColumnTitle:[homeData objectAtIndex:row]];这里是要传NSString类型,而其实返回的
2017-06-20 19:45:09 366
原创 用AFNetworking请求的时候GET正常,而POST时后台缺收不到数据,最坑的就是安卓还是正常的
原因一:后台的原因测试方法:http://www.atool.org/httptest.php 接口在线测试工具,在这个网站进行POST请求验证,如果是正常的基本就说明不是后台原因,而是你的原因原因二:(我用的是AFNetworking)你自己给AF设置了请求头text/mxl格式,然而AF默认的请求头并没有这个,所以你需要自己去AF
2017-06-19 10:28:32 6490
原创 解析数据出错:reason: '-[__NSCFArray bytes]: unrecognized selector sent to instance 0x18056b30'
原因是:第三方请求的方法里就已经有转过一次解析,responseObj 已经是NSArray了,不需要自己再去转换为json类型或是其他类型。解决办法:NSArrar* datas=(NSArrar*)responseObj ;
2017-06-19 10:13:21 787
原创 出现( linker command failed with exit code 1)错误总结
1、问题来源第一种,是你导入某一个三方库; 第 二种,是你在vim Podfile中删除或者屏蔽掉某一个三方库。2、解决方案(1)需要检查 或者检查这两处是否导入该库的路径。(2)对于删除三方库就是因为你之前导入的时候,已经在某些地方留下了该库的路径,但是闲杂删除了之后,
2017-06-09 17:44:41 2174
原创 iOS应用崩溃日志分析
做开发的过程中,调试时遇到什么bug,首先就是要定位bug在哪。此时,如果可以重现这个bug,能把设备接到电脑上调试是最好不过了。但是,但是能重现的bug一般一眼就能看出来是什么问题好么。最头疼的是,给测试设备上安装了app,然后去给策划或测试试玩,结果他们说程序闪退,但又不能重现出来。。。现在有办法解决这个问题了。需要如下三个步骤即可:1.取出或者查看设备上的崩溃日志。
2017-05-31 16:16:14 1417
原创 浅谈Masonry
在使用Masonry进行约束时,有一些是需要注意的。在使用Masonry添加约束之前,需要在addSubview之后才能使用,否则会导致崩溃。在添加约束时初学者经常会出现一些错误,约束出现问题的原因一般就是两种:约束冲突和缺少约束。对于这两种问题,可以通过调试和log排查。之前使用Interface Builder添加约束,如果约束有错误直接就可以看出来,并且会以红色或者黄色警告体
2017-05-25 18:06:24 329
转载 谈Runtime机制和使用的整体化梳理
相比“凌波微步”的Swift,Object-C被誉为“如来神掌”。传说Runtime就是支持这“如来神掌”说法的最好体现。听起来总是这么的神秘高级,于是总能在各个论坛看到碎片资料,时间一长总记不住哪里是哪里,每次都要打开好几个网页。这种记不住象现显然是知识体系还不完整重要体现。还是自己从Runtime的思想到动手代码呈现上做出总结尚为上策。
2017-05-24 11:54:41 250
原创 本地 Mac 搭建 IPv6 测试环境
搭建 IPv6 测试环境说白了就是用 Mac 做一个热点,然后用 iPhone 连接这个 Wi-Fi。和正常的开启 Mac 热点的方式的区别是这次我们产生的是一个本地的 IPv6 DNS64/NAT64 网络,这项功能是 OS X 10.11 新加的功能(如果你的 Mac 系统版本不是的话必须要升级哦,才能产生 IPv6 的热点呐 )。步骤1 :打开系统偏好设置
2017-05-24 11:05:15 772
原创 App store 应用审核由于 IPv6 网络问题被拒的一点分析
先分析一下情况,很多开发者抱怨自己按照苹果给出的方法,在自己电脑上搭了 IPv6 的环境测试了,没有问题,为啥一提交审核就不行了呢?这里就要看一下本机搭的这个 IPv6 环境到底是怎么回事,它到底能验证什么。苹果提供的方法是帮我们创建一个 NAT64 的网络,这里先要搞清楚啥是 NAT64. 其实简单来说,就是这样的:所以,手机和 Mac 之间是 IPv6 没错,但 Mac
2017-05-24 10:58:39 761
原创 上下滚动的公告图
创建一个基于UIView的类.h文件中.h文件中#import @class GYChangeTextView;@protocol GYChangeTextViewDelegate //点击公告方法- (void)gyChangeTextView:(GYChangeTextView *)textView didTapedAtIndex:(NSInteger)in
2017-05-05 15:29:35 371
原创 _weak typeof(self) weakSelf = self
_weak typeof(self) weakSelf = self; (一)内存管理原则 1、默认strong,可选weak。strong下不管成员变量还是property,每次使用指针指向一个对象,等于自动调用retain(), 并对旧对象调用release(),所以设为nil等于release。 2、只要某个对象被任一strong指针指向,那么它将不会被销毁,否则立即释放,不用等
2017-05-05 15:00:39 258
原创 如何实现两个ViewController视图之间的透明效果
说一下怎么创建一个透明的控制器覆盖在老控制器上面(参考地址http://www.jianshu.com/p/1d0747c89664)如果A present B1、设置 A.definesPresentationContext = YES; 2、设置B.modalPresentationStyle = UIModalPresentationOverCurrentCont
2017-04-13 22:19:50 243
原创 iOS--LaunchImage启动页设置及问题解决
一.根据不同屏幕尺寸的需求设置不同的图片,可以参照下图: 1.点击Image.xcassets 进入图片管理,然后右击,弹出"New Launch Image" 2.右侧的勾选可以让你选择是否要对ipad,横屏,竖屏,以及低版本的ios系统做支持二.取消系统默认使用的LaunchScreen,首先你要取消Use as Launch
2017-04-05 10:51:13 2784
原创 Duplicate interface definition for class 错误的原因
主要原因是因为在同一文件存在工程的不同的目录下,反复添加到工程里。造成重定义,解决办法是删除里重复的refrence就可以了。
2017-04-05 10:30:14 4830
原创 轮播图封装,使用时只需调用一个方法解决
1、自己创建一个继承UIView的分类.h文件中#import typedef void (^ImageViewClick)(NSInteger index);@interface JAScrollView : UIView@property (nonatomic,assign)BOOL isRunloop;//是否开启定时器 default NO@property (nonato
2017-03-29 16:21:19 357
原创 分栏控制器的背景颜色不知道为什么点击其中一个视图的时候背景颜色会改变,点击别的视图又会恢复正常如何解决
在创建UITabbarController的时候设置以下属性方法一:self.view.backgroundColor = [UIColor whiteColor]; 方法二:[UITabBarappearance].translucent =NO; //设置不透明至于是什么原因导致这样的,目前暂不知道,如果有哪位大神看到帖子且知道是因为
2017-03-29 15:47:34 298
原创 登录的时候如何保存账号密码在本地(通过钥匙串保存)
解决方法:通过钥匙串来保存使用cocoapods导入第三方SFHFKeychainUtils,里面有三个类方法(1)get取出密码(2)store保存密码(3)delete删除用户
2017-03-29 00:03:53 2580
原创 如何通过runtime更改系统默认的方法
以更改系统的URLWithString:方法为案例1、首先要用runtime要先在target-buildSetting中搜索msg,将出现的Enable Strict Checking of objc_msgSend Calls更改为NO2、创建一个继承于NSURL的分类,下面上代码(1).h文件里面声名自己创建的方法+ (instancetype)XC_UR
2017-03-28 16:01:33 274
原创 iOS中修改WebView默认的User Agent
在AppDelegate的-applicationDidFinishLaunching:方法中增加如下代码,修改默认User Agent@autoreleasepool { UIWebView* tempWebView = [[UIWebViewalloc] initWithFrame:CGRectZero]; NSStrin
2017-03-23 17:48:45 918
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人