ios开发
文章平均质量分 65
-奇迹-
这个作者很懒,什么都没留下…
展开
-
Runtime
Runtime交换系统的方法SEL、IMP、ISA交换系统的方法在项目中经常会遇到统计用户使用习惯,例如用户进入某个页面的频次,如果在每个页面增加统计的方法那么会增加很多的重复代码,可以使用运行时的特性在分类中交换方法达到目的,交换系统的方法并且不需要重新导入头文件就可以达到,但是如果两个分类分别执行相同的操作去交换同一个方法那么会交换无效,方法名不同只会执行后面的。在不改变原有方法的效果上...原创 2020-03-25 17:17:09 · 236 阅读 · 0 评论 -
review
Block_NSConcreteGlobalBlock,全局block存放在静态区,block没有使用外部变量情况。_NSConcreteStackBlock,在调用的了外部变量或并且未被copy,使用完后自动销毁_NSConcreteMallocBlock,对stack block进行copy后变成堆,需要手动释放 void(^globalBlock)(void) = ^(){ ...原创 2020-03-25 09:26:37 · 238 阅读 · 0 评论 -
修改searchBar搜索框的删除按钮颜色值
[_searchBar setImage:[UIImage imageNamed:@"技师_搜索_删除按钮"] forSearchBarIcon:UISearchBarIconClear state:UIControlStateNormal]; UITextField *txfSearchField = [_searchBar valueForKey:@"searchField"];原创 2016-01-14 14:14:36 · 1631 阅读 · 0 评论 -
ios本地通知
首先在注册通知 if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]){ [application registerUserNotificationSettings:[UIUserNotificationSettings setti原创 2016-02-01 16:58:40 · 274 阅读 · 0 评论 -
转载http://www.cnblogs.com/kenshincui/p/3931948.html
代码改变世界Posts - 71, Articles - 0, Comments - 1397 CnblogsDashboardLoginHomeContactGalleryRSSKenshin Cui's BlogCODING 完美世界... iOS开发系列--UITableView全面解析2014-08-23 23:20 by Kensh转载 2016-02-18 17:51:18 · 1126 阅读 · 0 评论 -
NSMutableAttributedString同一个label中显示不同的字体样式
NSMutableString *mutableStr = [NSMutableString stringWithString:[NSString stringWithFormat:@"累计个人总收入:¥%@",achievementStr]]; NSRange range = [mutableStr rangeOfString:[NSString stringWithFormat:@"¥原创 2016-02-22 16:04:47 · 334 阅读 · 0 评论 -
开发中遇到loadnib初始化的时候提示为空
老提示'-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "xxx" nib but the view outlet was not set.纠结了很久检查了xib中根本就没有涉及到这个提示的view,并且程序在ios9以上跑也没有问题,最后的处理方案是:可能在创建文件的时候忘记勾选项导致在运行的时候找不到文件。删掉文件重新a原创 2015-10-28 11:31:20 · 328 阅读 · 0 评论 -
xib自定义View
创建view class 创建view xib设置view的classowner创建xib的文件名和view的classname最好一样在controoler中使用以下方法使用 //获得nib视图数组 NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"BookingManageHeaderView" own原创 2016-02-23 09:54:46 · 271 阅读 · 0 评论 -
ios自定义返回按钮后没有滑动返回手势处理方法
A push B push C在C中不需要加以下代码在A视图中增加下面代码-(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; self.navigationController.interactivePopGestureRecognizer.enabled = NO;}在Apus原创 2016-03-21 11:02:09 · 1208 阅读 · 0 评论 -
ios MM-dd-yyyy hh:ss pm 转成yyyy-mm-dd hh:ss
NSString *currentDateString = @"8/5/2011 1:38:13 PM"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //Set the AM and PM symbols [dateFormatter setAMSymbol:@"AM"];转载 2016-03-11 16:21:21 · 1786 阅读 · 0 评论 -
转载ios开发如何使用Xcode的Targets来管理开发和生产版本的构建
如何使用Xcode的Targets来管理开发和生产版本的构建2016-03-31 06:18 编辑: suiling 分类:iOS开发来源:CocoaChina翻译活动27 7171 XCode招聘信息:高级PHP开发工程师iOS高级研发工程师iOS开发工程师高级iOS手机应用软件开发工程师(培训讲师)高级Cocos2d-x游戏开发工程师转载 2016-04-07 17:56:21 · 382 阅读 · 0 评论 -
IOS 图片压缩保存
创建一个UIImage+Category用于压缩图片处理/** * @brief 压缩照片 * @parma img:目标图片 * @parma newSize:压缩至目标尺寸 */-(UIImage *)compressImageWithImage:(UIImage *)img scaleToSize:(CGSize)newsize{ UIGraphicsBegin原创 2015-12-22 10:25:54 · 435 阅读 · 0 评论 -
IOS 判断定位服务是否开启代码
if ([CLLocationManager locationServicesEnabled] && ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized || [CLLocationManager authorizationStatus] == kCLAuthor原创 2015-12-22 10:18:10 · 967 阅读 · 0 评论 -
nib must contain exactly one top level object which must be a UITableViewCell instance
出现这个"nib must contain exactly one top level object which must be a UITableViewCell instance"的原因是因为在xib中多拖出来了一个cell,将多余的cell删除原创 2015-10-29 09:34:19 · 5199 阅读 · 0 评论 -
IOS动画
[UIView beginAnimations:@"animationID" context:nil]; [UIView setAnimationDuration:0.5f]; [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];原创 2015-12-10 11:48:27 · 320 阅读 · 0 评论 -
Masonry学习
使用Masonry Lable自动适应文字宽度高度,设置Label的最大宽度值preferredMaxLayoutWidth并且设置numberOfLines=0,才有效果#pragma mark - 滚动视图自适应-(void)testScrollView{ self.testScrollerView = [[UIScrollView alloc] init]; self.原创 2015-12-29 14:17:41 · 2770 阅读 · 0 评论 -
AFNetWorking源码学习摘要
/** 要使用常规的AFN网络访问 1. AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 所有的网络请求,均有AFHTTPRequestOperationManager发起 2. 默认提交请求的数据是二进制的,返回格式是JSON原创 2015-12-15 11:51:51 · 424 阅读 · 0 评论 -
创建可以拖动的按钮
创建UIImageview添加拖动事件 UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; imageView.backgroundColor = [UIColor redColor]; [self.view addSubview:imageV原创 2015-11-27 14:19:00 · 355 阅读 · 0 评论 -
ios UIWebView用NSURLSessionDataTask获取请求返回的状态码
// 创建Data Task NSURL *url = [NSURL URLWithString:@"http://blog.csdn.net"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; NSURLSession *session = [NSURLSession sharedSession];原创 2015-12-16 10:29:50 · 5413 阅读 · 0 评论 -
OC用Dispatch处理并发完成所有任务之后执行最终的结果
dispatch_queue_t queue = dispatch_queue_create("queueName", DISPATCH_QUEUE_CONCURRENT); dispatch_group_t group = dispatch_group_create(); dispatch_group_async(group, queue, ^{ NSLog(@"原创 2015-12-17 13:31:58 · 766 阅读 · 0 评论 -
切换VC的时候内存溢出崩溃
在ios8.1.2上跑APP在两个VC中相互切换,崩溃信息0libobjc.A.dylib0x0000000197cdfbd0objc_msgSend (scrollViewDidScroll:) + 161UIKit0x000000018aa90b9c-[UIScrollView setContentOffset:] + 500原创 2015-12-19 16:49:30 · 1857 阅读 · 0 评论 -
计算脸部部位在坐标系中的位置
CIImage* image = [CIImage imageWithCGImage:aImage.CGImage]; NSDictionary *opts = [NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh原创 2016-01-21 10:47:57 · 1068 阅读 · 0 评论 -
修改tableview开启多选编辑模式下选中按钮的图片
-(void)layoutSubviews{ [super layoutSubviews]; for (UIControl *control in self.subviews){ if ([control isMemberOfClass:NSClassFromString(@"UITableViewCellEditControl")]){原创 2016-04-14 15:26:48 · 1917 阅读 · 0 评论 -
ios Method Swizzling学习笔记
Method Swizzling我的理解是运用Runtime获取类与类之间的方法,并且可以进行对换,从而达到某些目的,但是通过学习感觉和继承或者分类上使用父类的方法差不多,这种方式去搞,反而有点让接手的人不知所然,只是让外人觉得略微显得有点逼格一点。学习代码创建三个类,FOO、Bar、BarCategatory#import @interface Foo : NSObject-原创 2016-04-14 17:57:03 · 339 阅读 · 0 评论 -
iOS 10 权限
麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风? 相机权限: Privacy - Camera Usage Description 是否允许此App使用你的相机? 相册权限: Privacy - Photo Library Usage Description 是否允许此App访问你的媒体资料库? 通讯录权限: Priva原创 2016-09-27 16:59:24 · 403 阅读 · 0 评论 -
使用GCDAsyncUdpSocket&GCDAsyncSocket进行TCP连接和UDP连接
UDP初始化完后需要绑定端口号才能发送数据后接受到返回结果TCP初始化连接前需要先关闭连接。测试代码#import "P2PConnect.h"static NSString *hostAdress = @"服务器地址";static uint16_t serverPort = 1服务器端口;@implementation P2PConnect{ GCDAsyncSock原创 2016-06-22 18:27:49 · 3985 阅读 · 0 评论 -
iOS网络字节序列转换
iOS网络字节序列转换最近项目使用字节流的方式传输数据,数据包中包含数据的大小等相关的一些基础信息需要将字节转换成网络字节流的方式进行传输,因为之前一直使用的是Http或者用分隔符的方式去解决socket传输中引起的粘包问题,第一次接触网络字节流的概念.后来查询才知道原来对于不同的系统和不同的cpu中转换相同的数据可能大端和小端在字节的排序是不一致的,为了保持统一,出来了一个网络字节流的标准。 在原创 2017-06-29 16:24:42 · 1459 阅读 · 0 评论 -
MMDrawerController 手势与系统导航返回手势冲突
push后发现左滑返回偶尔返回到主界面,偶尔又返回到左侧菜单页,当所有的controller都继承自基类处理方法在 viewWillAppear和dissAppear中进行打开和关闭操作(判断类型).if ([self isKindOfClass:NSClassFromString(@"xxx")] ) { //判断需要打开滑动菜单手势的类 [self openMMD...原创 2018-06-08 11:58:08 · 752 阅读 · 0 评论 -
ios单元测试项目配置中遇到的问题及解决方案
困扰一天的问题,烦死,原来只要重启下手机就解决了原创 2018-07-24 17:05:39 · 1506 阅读 · 0 评论 -
iOS 二维码扫描优化记录
1.原生从相册中识别二维码图片成功率低感谢SGQRCode中提到压缩图片至手机屏幕大小再进行扫描,需要更多的参考在git中搜索SGQRCodeExample从图片中获取二维码的方法 CIDetector*detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:@{ CIDet...原创 2018-07-27 19:25:23 · 2858 阅读 · 0 评论 -
iOS 制作Framework中包含第三方库
记录下在制作Framework中遇到的问题:1.如果framework中包含分类,需要在build setting中搜索other link flag 添加‘-ObjC’.要不然会报错。2.对于第三库的处理,为了防止第三库与外部产生冲突在Framework中加入库的时候不要勾选copy item if need.3.项目中引入第三库报找不到文件提示,需要在User search path 中...原创 2019-07-18 12:45:35 · 3364 阅读 · 1 评论 -
制作MAC OS Framework记录
在iOS上已经制作好的SDK移植到mac上遇到的问题:1.删除iOS上存在的UIKit类,mac os 中不支持UIKit类2.在Mac os 项目中添加Target–>Cocoa Framework,将iOS中famework中的代码移到现在target中.3.找不到第三库的,需要在user header search path 中添加$(SRCROOT)/第三方存放路径4.当移除...原创 2019-07-23 17:50:53 · 1219 阅读 · 0 评论 -
ProtocolBuffer在Swift中实践记录
前几天搞了object-c中使用ProtocolBuffer,今天尝试在swift中也使用该协议进行传输协议。折腾了一上午终于搞定了,记录下在部署中所遇到的坑和自己实现的步骤。1、安装protoc 命令和objectc安装方式是一样的,不知道可以看上一篇文章.2、确保protoc命令可以生成对应的文件后,在部署过程中发现生成swift文件的时候总是报错“--swift_out: pro原创 2017-05-18 17:08:49 · 2479 阅读 · 2 评论 -
iOS集成谷歌ProtoBuff
项目中需要使用scoket传输数据流采用谷歌的ProtoBuff协议进行传输.我使用的安装方式是借鉴点击打开链接博主提供的方法.安装完成之后在/usr/local/bin中存在protoc执行文件该执行文件用来生成.h/.m文件安装完之后github中下载最新的protobuff object-c代码.下下来之后有点坑的地方是,代码中得文件很散乱,demo中得一些头部文件还引用原创 2017-05-16 15:51:23 · 722 阅读 · 0 评论 -
ios 使用自带的UIViewController实现qq加号下拉菜单的功能
创建PopViewControlller在tableview中创建一个tableview用于显示菜单//重置控制器的大小-(CGSize)preferredContentSize{ if (self.popoverPresentationController != nil) { CGSize tempSize ; tempSize.height原创 2017-05-11 14:50:12 · 1239 阅读 · 0 评论 -
Xcode7创建pch全局宏定义文件,去除NSLog
路径:new file - other - pch 创建完文件后需要到buildsetting中搜索:prefix header 在prefix header中$(SRCROOT)/项目名称/PrefixHeader.pch 修改precomplie prefix header 值为YES 在pch定义:原创 2015-09-28 15:03:39 · 1842 阅读 · 0 评论 -
pods
使用cocoapods时,import 找不到头文件。问题原因:这是因为还没设置头文件的目录。解决办法:在项目的Target的里设置一下,添加cocoapods头文件目录:目录路径直接写:${SRCROOT} ,后边选择recursive 。就可以了。注意:是在 User Header Search Paths 里添加,不是上面的 Header Search Paths.pod原创 2016-06-16 18:25:40 · 717 阅读 · 0 评论 -
storybord中得所有控件不显示
在别人的xcode中可以显示但是在自己的电脑中不显示处理办法:原创 2016-07-04 09:30:28 · 551 阅读 · 0 评论 -
Facebook 登录自定义按钮
- (void)_updateContent:(NSNotification *)notification { NSInteger slot = 0; FBSDKProfile *profile = notification.userInfo[FBSDKProfileChangeNewKey]; if (profile) { SUCacheItem原创 2016-11-02 14:16:44 · 4065 阅读 · 0 评论 -
按钮不点击没有效果
产生的原因:1、被别的透明的view给遮住了 2、高度不够实际是没有点击到按钮的原创 2017-02-17 15:59:55 · 479 阅读 · 0 评论