
iOS
文章平均质量分 56
水清_木秀
做我所爱,爱我所做。
展开
-
iOS项目BuildVersion是什么
转自:http://hanhan2611.blog.163.com/blog/static/2075771392014111625932819/什么是BundleVersion关于iOS工程的版本设置我们注意到,工程中的Info.Plist配置中有两个字段,BundleVersion和BundleShortVersionString。工程target文件中我们也可以看到:转载 2015-06-15 17:10:08 · 1475 阅读 · 0 评论 -
对百度地图SDK中的真机framework和模拟器framework合并时遇到的问题,sdkframework
【转自:http://www.bkjia.com/Androidjc/1029236.html】在终端中输入的命令:lipo -create Release-iphoneos/BaiduMapAPI.framework/BaiduMapAPI Release-iphonesimulator/BaiduMapAPI.framework/BaiduMapAPI -ou转载 2015-08-25 11:57:11 · 380 阅读 · 0 评论 -
UIAlertView 按钮设置可点或者不可点击
- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertViewYES的时候可以点击,NO的时候不可以点击。这种方式只适用于主线程内。如果在其中执行网络请求,是无法达到这种效果的。原创 2015-08-03 14:04:31 · 700 阅读 · 0 评论 -
设置控件某个地方的圆角属性
这种方式可以控制四个角的圆角属性。typedefNS_OPTIONS(NSUInteger, UIRectCorner) { UIRectCornerTopLeft =1 0, UIRectCornerTopRight =1 1, UIRectCornerBottomLeft =1 2, UIRectCornerB原创 2015-08-03 14:22:47 · 577 阅读 · 0 评论 -
Cell复用保留改变状态
对于TableViewCell 改变了某个值,在复用机制后,保留这个cell所做的改变。【1】首先,对于这个cell 新加参数:所在的行数 indexRow 以及改变的状态。【2】在创建cell的时候,把行数以及状态传送过去。这个时候,肯定是没有状态的。那么就做好判断处理。【3】在cell中进行的某些操作,把操作结果以及indexRow通过bloc原创 2015-08-03 14:54:09 · 509 阅读 · 0 评论 -
改变UISearchBar的细节问题
UIView *topView =_searchBar.subviews[0]; NSLog(@"%@",topView.subviews); for (UIView *subViewin topView.subviews) { NSLog(@"%@",subView);原创 2015-08-03 15:16:07 · 398 阅读 · 0 评论 -
iOS8 中 UIVisualEffectView 模糊效果的使用
/* - - - - - - 图片模糊 - - - - - - */ UIImageView *imaV = [[UIImageViewalloc] init]; imaV.frame =CGRectMake(0,0, 320, 500); imaV.image = [UIImageimageNamed:@原创 2015-08-14 14:01:28 · 696 阅读 · 0 评论 -
拍摄的照片上传之后旋转如何解决?
1 - (UIImage *)normalizedImage {2 if (self.imageOrientation == UIImageOrientationUp) return self; 3 4 UIGraphicsBeginImageContextWithOptions(self.size, NO, self.scale);5 [self drawInRe转载 2015-11-23 14:06:04 · 2156 阅读 · 0 评论 -
UITableView上编辑UITextView
首先创建一个currentTextView来表示当前编辑的是哪一个UItextView。在beginEdit代理方法中,来确定currentTextView是具体哪儿UItextView.然后在下面方法中算出当前的内容的高度,如果高度变化了,那么就让这个TextView的高度也变同时cell高度也变,同时刷新这个cell。- (void)textViewDidChange:(UIT原创 2015-11-23 12:22:40 · 639 阅读 · 0 评论 -
视频的byte大小和时间
NSData *date = [NSData dataWithContentsOfFile:[mp4 relativePath]]; NSLog(@"%lu",(unsigned long)date.length); // bytes原创 2015-12-10 15:21:25 · 745 阅读 · 0 评论 -
osChina创建git工程
创建一个空的文件夹。(个人创建在了桌面,名字为gitTest)cd /Users/apple/Desktop/gitTest把项目工程的git URL得到WiKideMacBook-Air:gitTest WiKi$ git clone git@git.oschina.net:suwenkang/onlyText.gitWiKideMacBook-Air原创 2015-12-10 16:29:05 · 510 阅读 · 0 评论 -
获取视频的缩略图
【1】 获取本地视频的缩略图+(UIImage *)getThumbnailImage:(NSString *)videoURL{ AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[NSURL fileURLWithPath:videoURL] options:nil];原创 2015-11-19 18:14:30 · 729 阅读 · 0 评论 -
极光推送的使用方法
#import "AppDelegate.h"#import "APService.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingW原创 2015-05-23 14:44:42 · 2370 阅读 · 0 评论 -
cellForRowAtIndexPath不执行
遇到这种问题,首先检查最基本的东西 【1】 代理协议写没写,遵没遵守。 【2】 numberOfRows 是否为0 【3】 如果代理协议 不是等于self, 而是等于另外一个类。这个时候,这个类应该是这个tableview所属的view或者controller的一个属性,或者全局变量。如果每次都是通过直接创建,然后设置其为代理。那么由于OC的ARC机制,中途这个类就会被自动释放。所以,原创 2015-12-17 18:16:06 · 791 阅读 · 0 评论 -
autolayout 计算tableView的高度
在IOS7以后,出现了自动计算高度的方法。systemLayoutSizeFittingSize。但是这个得到的是contentView的高度,所以cell的高度还要再+1.在计算出高度之后,可以保存在数组中,或者在这个cell中有关CGFloat属性,来保存当前的cell的model所占cell的高度。避免重复计算。- (CGFloat)tableView:(UI转载 2015-12-02 11:38:00 · 507 阅读 · 0 评论 -
密码格式 数字+字母
- (BOOL)cheakRegist{ int isEnglish = 0; int isNum = 0; int isOther = 0; NSString *newStr = self.newpassword.text; NSString *temp = nil; for(int i =0;原创 2016-01-08 11:44:53 · 3555 阅读 · 0 评论 -
CocoaPods的安装
$ gem sources -l查看输出,如果输出结果是*** CURRENT SOURCES ***https://ruby.taobao.org/那么就可以直接进行pod的安装了。不是的话,需要删除内容,然后添加上面的URL。比如:$ gem sources --remove https://rubygems.org/$ gem sources -a https://ruby.tao原创 2015-12-09 12:11:36 · 313 阅读 · 0 评论 -
MAC Github的使用方法
首先从网上下载GitHub Desktop。输入用户名和密码。选择你的工程。创建完成并且添加之后,进行commit操作。在这里填写commit理由。点击commit就可以直接上传到github上了。原创 2015-12-09 15:56:24 · 384 阅读 · 0 评论 -
autolayout 要点
setNeedsUpdateConstraints是当一个view的属性发生变化并可能影响到布局时,需要调用这个方法来标记一下,在后面再次进行图层的布局needsUpdateConstraints通过调用这个方法返回的BOOL来确定是否需要重新布局,如果是YES的话,那么就重新布局。updateConstraintsIfNeeded立转载 2016-01-14 17:13:17 · 406 阅读 · 0 评论 -
控制台的输出
popbreakpoint delete 删除所有的断点thread return NO 在断点处return,不执行下面的代码continue 程序继续运行next 单步运行step 进入方法finish 走完方法,返回到上层frame原创 2016-02-02 17:06:07 · 427 阅读 · 0 评论 -
performSelector引发的感想
- (void)startAutoPlay{ [self performSelector:@selector(timerFire) withObject:self afterDelay:2.0f]; }- (void)timerFire{ timer = [NSTimer scheduledTim原创 2016-04-07 17:30:32 · 491 阅读 · 0 评论 -
二次封装的GCD使用
串行队列 & 并发队列 //创建队列 GCDQueue *queue = [[GCDQueue alloc] initConcurrent]; //initSerial 串行队列 initConcurrent 并发队列GCD线程组 //等线程1和线程2执行完了之后,执行线程3 GCDGroup *group = [[原创 2015-12-03 10:08:34 · 651 阅读 · 0 评论 -
OC的对象的创建
对于alloc方法,我们最先知道的肯定是,从应用程序的虚拟地址空间上为该对象分配足够的内存。但是不仅仅是这样,其实还做了以下3件事情:将该新对象的引用计数 (Retain Count) 设置成 1。将该新对象的 isa 成员变量指向它的类对象。将该新对象的所有其它成员变量的值设置成零。(根据成员变量类型,零有可能是指 nil 或 Nil 或 0.0)而,init转载 2016-05-12 10:17:32 · 743 阅读 · 0 评论 -
随机数
arc4random_uniform(150) 得到0 ~ 149arc4random_uniform(150)-30 得到-30 ~ 119arc4random()%10 得到0 ~ 9arc4random()%10+61 得到61 ~70原创 2016-05-18 10:17:42 · 394 阅读 · 0 评论 -
NSCharacterSet 对于字符串的处理
/* 1 controlCharacterSet //控制符 2 whitespaceCharacterSet //空格符号 3 whitespaceAndNewlineCharacterSet //空格换行 4 decimalDigitCharacterSet //小数 5原创 2016-09-12 18:46:40 · 937 阅读 · 0 评论 -
NSCoder 进行数据的归档解档
首先我们创建一个WKUser类,来保存用户的基本信息。#import #import @interface WKUser : NSObject@property (nonatomic,strong) NSString *name;@property (nonatomic,strong) NSString *age;@property (nonatomic,strong) UI原创 2016-09-26 14:52:23 · 452 阅读 · 0 评论 -
#import 写在.m文件的原因
很多刚开始学习iOS开发的同学可能在看别人的代码的时候会发现有部分#import操作写在m文件中,而h文件仅仅使用@class进行声明,不禁纳闷起来,为什么不直接把#import放到h文件中呢?这是因为h文件在修改后,所有import该h文件的所有文件必须重新build,因此,如果把#import写在h文件中,import该h文件的文件也就会产生不必要的编译,增加编译时间,特别是在项目转载 2016-10-25 14:49:54 · 782 阅读 · 0 评论 -
页面不同navi的跳转
1. B页面返回时跳转新页面Cvar controllerArr = self.navigationController?.viewControllers//获取Controller数组controllerArr?.removeAll()//移除controllerArr中保存的历史路径 //重新添加新的路径controllerArr?.append(self.navigati转载 2016-10-25 15:02:32 · 525 阅读 · 0 评论 -
setObject 和 setValue 区别
老生常谈的问题了。许多新手还是不懂。【1】 setObject:forkey:中value是不能够为nil的,不然会报错。 setValue:forKey: 中value能够为nil,但是当value为nil的时候,会自动调用removeObject:forKey方法【2】 setValue:forKey:中key的参数只能够是NSStri原创 2016-10-25 16:46:16 · 944 阅读 · 0 评论 -
可变参数 :(NSString *)code,...
[self sing:@"hello",@"world",nil];- (void)sing:(NSString *)code,... { va_list args; //定义va_list型的变量,这个变量是指向参数的指针 va_start(args, code); //初始化刚定义的va_list变量; NSL原创 2016-10-25 17:36:21 · 364 阅读 · 0 评论 -
适配iOS10.2 https双向认证
大体流程:1、后台申请好证书,然后发给你。 可以从腾讯云或者阿里云上申请证书。腾讯云审核的稍微快一些。2、你拿到证书以后,放到钥匙串儿里,然后再右键把他导出来。就是cer格式的证书了。3、把证书放到工程里。 4、配置一下网络请求的参数。(AFNetwork是支持带证书的) 代码中会自动遍历,NSSet出bundle文件中所有的.cer文件。在进行网络请求的试原创 2017-02-15 15:04:31 · 1220 阅读 · 0 评论 -
高德百度坐标系转换方法
转自:http://blog.youkuaiyun.com/meegomeego/article/details/39927017在开始这个题目之前,先给大家再次扫扫盲,扫的不是坐标系统的盲,而是我们国家所使用的坐标系统。大家都知道,美国GPS使用的是WGS84的坐标系统,以经纬度的形式来表示地球平面上的某一个位置,这应该是国际共识。但在我国,出于国家安全考虑,国内所有导航电子地图必须使用转载 2017-03-22 17:49:40 · 669 阅读 · 0 评论 -
Runloop加载本地大图
源代码在github上。https://github.com/WiKi123/runloop-image 欢迎大家指点。首先我们先监听当前runloop。然后根据runloop的状态进行cell的绘制。- (void)addRunloopObserver{ //获取当前的runloop CFRunLoopRef runloop = CFRunLoopGet原创 2017-04-01 17:32:16 · 944 阅读 · 0 评论 -
togo
某位大神不推荐使用togo,认为togo使代码变得混淆、不易理解。在此简单介绍下togo的用法。 int a = 1; start:{ a++; NSLog(@"%d",a); } if (a<5) { goto start; }else{ goto end; }原创 2017-02-09 18:41:36 · 614 阅读 · 0 评论 -
Runtime的使用1 【 objc_setAssociatedObject 类添加属性】
以view的点击事件UIGestureRecognizer为例子,使用block的方式进行回调。首先我们创建一个UIGestureRecognizer的类别。#import typedef void(^MMGestureBlock)(id gestureRecognizer);@interface UIGestureRecognizer (Block)+ (instancetyp原创 2017-07-13 15:14:34 · 386 阅读 · 0 评论 -
OC 关键字
nullable 可空类型。nonatomic 禁止多线程,变量保护,提高性能。atomic 提供多线程安全。是oc使用的一种线程保护技术,是防止在未完成的时候被另外一个线程读取,造成数据错误。而这种机制是 耗费系统 资原创 2015-12-07 15:57:24 · 1082 阅读 · 0 评论 -
NSMutableAttributedString && NSAttributedString
UILabel *label = [[UILabel alloc] init]; label.frame = CGRectMake(30, 60 , [UIScreen mainScreen].bounds.size.width - 60, 340); label.numberOfLines = 0; [self.view addSubview:lab原创 2016-09-08 16:15:41 · 489 阅读 · 0 评论 -
Runtime的使用2 【method swizzling】
method swizzling 不想再多说什么了。 但是网上对于此的讲述大都是文绉绉、理解起来不是那么随性…特此稍微记一下,方便大家理解。代码贴一下,好参照对比一下。#import "UIImage+hook.h"#import <objc/runtime.h>@implementation UIImage (hook)+ (void)load { static dispatch_onc原创 2017-07-13 15:23:44 · 321 阅读 · 0 评论 -
Runtime的使用3 【字典转模型】
提到字典转模型,MJExtension类似这个库,用过的就晓得转成model是多么的便捷。本文就dictionary -> model 略微介绍以下。首先,创建一个model类。@interface Model : NSObject@property (copy,nonatomic) NSString *name;@property (copy,nonatomic) N原创 2017-07-13 18:23:46 · 348 阅读 · 0 评论 -
Runtime的使用4 【获取属性和方法(包括私有)】
以UIPageControl为例子。得到这个class所有的属性和所有的方法。#pragma mark - 获取所有的属性(包括私有的)- (void)getAllIvar { unsigned int count = 0; //Ivar:定义对象的实例变量,包括类型和名字。 //获取所有的属性(包括私有的) Ivar *ivars= class_co原创 2017-07-13 18:32:30 · 296 阅读 · 0 评论