IOS学习笔记
wtj900
这个作者很懒,什么都没留下…
展开
-
运行循环-RunLoop
1. 简介1.1 什么是RunLoopRunLoop实际上是一个对象,这个对象在循环中用来处理程序运行中出现的各种事件(比如触摸事件、UI刷新事件、定时器事件、Selector事件),从而保持程序的持续运行;而且在没有事件的时候,会进入睡眠模式,从而节省CPU资源,提高程序性能。1.2 RunLoop和线程RunLoop和线程是息息相关的,我们知道线程的作用是用来执行特定的一个或多个任务,但在默认情原创 2017-06-07 09:42:59 · 559 阅读 · 0 评论 -
iOS实现App之间的内容分享
转自:http://www.jianshu.com/p/88a08d66894f前言我们在iOS平台上想要实现不同App之间的内容分享一般有几种常用方式:第一种是通过AirDrop实现不同设备的App之间文档和数据的分享;第二种是给每个App定义一个URL Scheme,通过访问指定了URL Scheme的一个URL,实现直接访问一个APP;第三种是通过UIDocumentInteractio转载 2016-10-20 16:26:02 · 472 阅读 · 0 评论 -
Cookie
Cookie简介1.Cookie由服务器端生成,发送给客户端 2.客户端将Cookie的key/value保存在某个目录下的文本文件内 3.如果客户端支持Cookie,下次请求同一网站时就可以将Cookie发送给服务器端 4.Cookie的名称和值由服务器端开发自己定义Cookie应用1.Cookie最典型的应用是在判断注册用户是否登录,记录用户登录信息,简化下次登录的过程 2.另一个重要场原创 2016-09-30 10:09:33 · 212 阅读 · 0 评论 -
HTML学习
HTML简介什么是 HTML?HTML 是用来描述网页的一种语言。HTML 指的是超文本标记语言 (Hyper Text Markup Language)HTML 不是一种编程语言,而是一种标记语言 (markup language)标记语言是一套标记标签 (markup tag)HTML 使用标记标签来描述网页HTML 标签HTML 标记标签通常被称为 HTML 标签 (HTML tag原创 2016-10-08 17:31:27 · 7136 阅读 · 5 评论 -
性能优化
翻译过来,大概的意思就是图层颜色混合。我们知道GPU是图形硬件,主要的工作是混合纹理并算出像素的RGB值,这是一个非常复杂的计算过程,计算的过程越复杂,所需要消耗的时间就越长,GPU的使用率就越高,这并不是一个好的现像,而我们需要做的是减少GPU的计算量。基本概念 我们要明白像素的概念。屏幕上每一个点都是一个像素点,颜色由R、G、B、alpha组成。如果某一块区域上覆盖了多层layer,最后所计算原创 2016-10-24 11:15:23 · 174 阅读 · 0 评论 -
性能优化
1.当NSArray和NSSet中所有元素要执行同一个方法的时候可以用- (void)makeObjectsPerformSelector:(SEL)aSelector; - (void)makeObjectsPerformSelector:(SEL)aSelector withObject:(id)argument;代替for循环,其性能优于for循环; 第二个方法中的argument是aS原创 2016-09-26 12:23:10 · 210 阅读 · 0 评论 -
UI界面设计
设置光标的颜色:设置tintColor即可原创 2016-10-10 16:53:12 · 247 阅读 · 0 评论 -
colorWithAlphaComponent
今天发现设置UIView设置alpha或者设置其layer的opacity时,其Subview的透明度也会跟着变。解决方法如下: [[UIColor blackColor] colorWithAlphaComponent:0.5]原创 2016-10-10 10:32:59 · 700 阅读 · 0 评论 -
IOS打包发布APP的所有详细流程
http://www.w2bc.com/article/134261转载 2016-08-15 14:03:12 · 275 阅读 · 0 评论 -
调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界的间距
转载:http://blog.sina.com.cn/s/blog_6f62cda30101rsjm.html我们发现,在设置navigationItem的leftBarButtonItem或rightBarButtonItem时,用CustomView初始化UIBarButtonItem,不论怎么设置CustomView的frame,添加到导航条上之后总是和屏幕边界有一定的间距(5pix),如何自转载 2016-09-10 12:29:43 · 271 阅读 · 0 评论 -
iOS获取UUID,并使用keychain存储,可用于封设备
关于UDID和UUID的区别 一.UDID(Unique Device Identifier)UDID是Unique Device Identifier的缩写,中文意思是设备唯一标识.在很多需要限制一台设备一个账号的应用中经常会用到,在Symbian时代,我们是使用IMEI作为设备的唯一标识的,可惜的是Apple官方不允许开发者获得设备的IMEI.iOS5 sdk中的获取方法:[UIDevice转载 2016-09-10 11:06:56 · 713 阅读 · 0 评论 -
iOS语音播放之切换听筒和扬声器的方法解决方案
[[UIDevice currentDevice] setProximityMonitoringEnabled:YES]; //建议在播放之前设置yes,播放结束设置NO,这个功能是开启红外感应//添加监听 [[NSNotificationCenter defaultCenter] addObserver:self转载 2016-06-22 10:38:28 · 535 阅读 · 0 评论 -
多任务
启动后台运行任务时,调用UIApplication的实例方法beginBackgroundTaskWithExpirationHandler:任务完成后,调用UIApplication实例方法endBackgroundTask://AppDelegate.h#import <UIKit/UIKit.h>@interface AppDelegate : UIResponder <UIApplicati转载 2016-07-06 12:06:07 · 288 阅读 · 0 评论 -
通用项目
应用的Device为iPhone时,在iPad上是可以运行的,但是周围有黑色边缘,且界面会被放大 应用的Device为iPad时,在iPhone上是不能运行的 应用的Device为Universal时,既可以在iPhone也可以在iPad上运行,并且iPad要适配横竖屏。一、UIStackView介绍 1.概念:一个堆叠视图的容器 iOS9新特性 2.stackView及其子视图可以进行界面原创 2016-04-19 09:59:00 · 351 阅读 · 0 评论 -
iOS9 3D Touch 使用教程
1应用图标 3D Touch3D Touch 分为重压和轻压手势, 分别称作POP(第一段重压)和PEEK(第二段重压), 外面的图标只需要POP即可.- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //使用系统自带图标原创 2016-10-20 15:29:58 · 393 阅读 · 0 评论 -
HTML CSS
CSS 简介原创 2016-10-11 18:55:38 · 350 阅读 · 0 评论 -
ios多线程详解
一、基本概念进程:在系统中运行的一个应用程序就是一个进程,每个进程之间是相互独立的,每个进程均运行在其专用且受保护的内存空间内线程:一个进程的所有任务都是在线程中执行的,每个进程都至少有一个线程(主线程)多线程:一个进程可以开启多条线程,多条线程可以并行执行不同的任务,多线程的并行执行任务其实是CPU在多条线程之间切换调度主线程:一个进程运行后,默认会开启一条线程,成为主线程或UI线程,其主原创 2017-06-02 13:25:50 · 544 阅读 · 0 评论 -
代码规范
对象间的通讯对象之间需要通信,这也是所有软件的基础。再非凡的软件也需要通过对象通信来完成复杂的目标。本章将深入讨论一些设计概念,以及如何依据这些概念来设计出良好的架构。blockBlock 是 Objective-C 版本的 lambda 或者 closure(闭包)。使用 block 定义异步接口:- (void)downloadObjectsAtPath:(NSString *)path com原创 2017-05-23 19:33:07 · 470 阅读 · 0 评论 -
iOS-Lottie源码解析
LOTAnimationView+ (instancetype)animationNamed:(NSString *)animationName inBundle:(NSBundle *)bundle { NSArray *components = [animationName componentsSeparatedByString:@"."]; animationName = compon原创 2017-04-24 19:57:09 · 3165 阅读 · 1 评论 -
1.遇到的问题
1.autoLayout和frame的关系,及在VC中在那个环节可以拿到autoLayout布局的view的frame 2.如何在UIScrollView上使用autoLayout 3.drawInRect绘图很耗时,怎么优化 4.滑动uitableView对timer的影响 5.__weak和__strong在block中的使用 6.数组如何弱引用 7.原创 2017-05-22 23:05:24 · 244 阅读 · 0 评论 -
app 被拒原因
1.应用程序包括隐藏色情内容和隐藏的支付功能,例如支付宝和微信; 2.应用程序的标题也不适合应用程序商店; 3.应用程序使用或引用非公开api; 如果你有源代码中定义的方法与上述相同的名称api,我们建议改变你的方法名称,让他们不再与苹果的私有api来避免碰撞被标记在以后提交您的应用程序。原创 2016-08-17 10:41:40 · 312 阅读 · 0 评论 -
实现UILable字体即粗体又有描边
#import <UIKit/UIKit.h>@interface LMEStrokeLabel : UILabel/** 描多粗的边*/@property (nonatomic, assign) NSInteger strokeWidth;/** 外轮颜色*/@property (nonatomic, strong) UIColor *strokeTextColor;/** 里面字体默认颜色*/@原创 2017-03-17 09:57:39 · 503 阅读 · 0 评论 -
ios加密
ios常用加密原创 2017-04-12 11:17:46 · 248 阅读 · 0 评论 -
文章标题
输出log到文件+ (void)redirectNSlogToDocumentFolder { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentDirectory = [paths objectAtInde原创 2017-03-30 14:24:37 · 235 阅读 · 0 评论 -
获取苹果设备信息
1.获得设备型号#import <sys/utsname.h>+ (NSString *)getCurrentDeviceModel { struct utsname systemInfo; uname(&systemInfo); NSString *platform = [NSString stringWithCString:systemInfo.machine encodin原创 2017-01-24 17:53:47 · 716 阅读 · 0 评论 -
重写canBecomeFirstResponder返回yes会崩溃
至今没有明白为什么,有谁知道可以留言告诉我,谢谢!原创 2016-07-11 16:02:00 · 1205 阅读 · 3 评论 -
UIBarButtonItem偏移方法
UIBarButtonItem偏移方法原创 2016-11-14 11:11:11 · 1280 阅读 · 0 评论 -
如何让选择粘贴ui默认显示
将UITextView的属性clearsOnInsertion设置为yes原创 2016-11-16 13:45:11 · 187 阅读 · 0 评论 -
判断ios设备
1.使用UI_USER_INTERFACE_IDIOM() 区分目前UI_USER_INTERFACE_IDIOM()有2个返回值 UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone 2.使用UIDevice NSStrin原创 2016-07-13 20:20:40 · 217 阅读 · 0 评论 -
获取手机通讯录
1.获取手机通讯录的状态 ABAuthorizationStatus status = ABAddressBookGetAuthorizationStatus();拒绝(kABAuthorizationStatusDenied)授权(kABAuthorizationStatusAuthorized)未决定是否授权(kABAuthorizationStatusNotDetermined)受原创 2016-07-13 19:26:47 · 582 阅读 · 0 评论 -
苹果的一些设置
打开某些地址:打开设置:url = UIApplicationOpenSettingsURLStringNSURL *url = [NSURL URLWithString:url];if ([[UIApplication sharedApplication] canOpenURL:url]) { [[UIApplication sharedApplication] openURL:url原创 2016-07-13 19:12:43 · 270 阅读 · 0 评论 -
音效与音乐
音效AudioToolbox.framework是一套基于C语言的框架,使用它来播放音效其本质是将短音频注册到系统声音服务(System Sound Service)。System Sound Service是一种简单、底层的声音播放服务,但是它本身也存在着一些限制: 1.音频播放时间不能超过30s 2.数据必须是PCM或者IMA4格式 3.音频文件必须打包成.caf、.aif、.wav中的一原创 2016-03-22 22:45:49 · 378 阅读 · 0 评论 -
iOS8新特性之交互式远程通知
一、通过调用 [[UIApplication sharedApplication] registerForRemoteNotifications];来实现application:didRegisterForRemoteNotificationsWithDeviceToken:和application:didFailToRegisterForRemoteNotificationsWithError原创 2016-03-11 19:24:34 · 263 阅读 · 0 评论 -
IOS崩溃 异常处理
iOS开发中我们会遇到程序抛出异常退出的情况,如果是在调试的过程中,异常的信息是一目了然,但是如果是在已经发布的程序中,获取异常的信息有时候是比较困难的。 iOS提供了异常发生的处理API,我们在程序启动的时候可以添加这样的Handler,这样的程序发生异常的时候就可以对这一部分的信息进行必要的处理,适时的反馈给开发者。 不足的地方是,并不是所有的程序崩溃都是由于发生可以捕捉的异常的,有些时候是原创 2016-03-11 18:49:52 · 354 阅读 · 0 评论 -
tableview刷新崩溃
开始时程序中的代码是:[self.dataSource replaceObjectAtIndex:indexPath.row withObject:model];[self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];然后程序崩溃 改为一下两种就不会崩溃:原创 2016-03-11 12:48:10 · 1416 阅读 · 0 评论 -
苹果内购
内购需要在appStore中添加消耗品和非消耗品的商品。 内购配置必须要使用全称内购步骤分为: // 1.请求可销售的商品 SKProductsRequest * request = [[SKProductsRequest alloc] initWithProductIdentifiers:set]; // 2.获取可销售的商品 通过代理获取productsRequest: didRece原创 2016-03-10 13:25:50 · 228 阅读 · 0 评论 -
instancesRespondToSelector与respondsToSelector的区别
1. instancesRespondToSelector只能写在类名后面,respondsToSelector可以写在类名和实例名后面。2. [类 instancesRespondToSelector]判断的是该类的实例是否包含某方法,等效于:[该类的实例 respondsToSelector]。3. [类 respondsToSelector]用于判断是否包含某个类方法。原创 2016-02-24 10:43:03 · 192 阅读 · 0 评论 -
ARC中_autoreleasing
ARC中__autoreleasing 在ARC中会自动注册到autoreleasepool中: 1、取得非自己生成并持有的对象时(即编译器检测不是以alloc/new/copy/mutableCope开始的方法名): @ autoreleasepool{ id __strong obj = [NSMutableArray array]; //[NSMutableAr转载 2016-02-23 15:58:22 · 287 阅读 · 0 评论 -
SSO单点登录
SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。当用户安装了对应第三方客户端且登录时,可以在登录时免去输入账号密码的过程,简化分享流程。 SSO协议无法在模拟器上实现(找不到对应的app)实现微博SSO协议需要5个步骤: 1.按友盟要求导入第三原创 2016-03-08 14:03:18 · 261 阅读 · 0 评论 -
判断数组中是否包含某个对象
如果想用[NSArray containsObject:] 那么你会发现,出来的结果都是NO。要想比较需要重写-isEqual:和-hash当判断anObject是否在当前的NSArray中的时候,是通过调用isEqual:这个方法来判断的,isEqual:本质是在比较两个对象的hash值@interface Person@property NSString *name;@原创 2016-03-07 12:58:44 · 3142 阅读 · 0 评论