iOS总结
xiaoxiaobukuang
欢迎大家提意见
展开
-
willMoveToParentViewController && didMoveToParentViewController
1、 @property(nonatomic,readonly) NSArray *childViewControllers NS_AVAILABLE_IOS(5_0); 获取所有的子视图控制器2、 - (void)addChildViewController:(UIViewController *)childController NS_AVAILABLE_IOS(5_0); 向视图控制器容器中原创 2016-01-27 11:19:14 · 2069 阅读 · 0 评论 -
iOS 常用公共方法(三)
1、让Xcode的控制台支持LLDB类型的打印打开终端输入三条命令:touch ~/.lldbinitecho display @import UIKit >> ~/.lldbinitecho target stop-hook add -o \"target stop-hook disable\" >> ~/.lldbinitCocoaPods pod install/pod update更新原创 2016-11-21 15:53:14 · 775 阅读 · 0 评论 -
iOS 常用公共方法(二)
1、UITableView的Group样式下顶部空白处理//分组列表头部空白处理UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0.1)];self.tableView.tableHeaderView = view;2、UITableView的plain样式下,取消区头停滞效果- (void)scrollViewD原创 2016-11-21 15:04:35 · 853 阅读 · 0 评论 -
iOS开发中<null>的处理
在iOS开发过程中经常需要与服务器进行数据通讯,JSON就是一种常用的高效简洁的数据格式。问题:在项目中,一直遇到一个坑的问题,程序在获取某些数据之后莫名崩溃。原因是:由于服务器的数据库中有些字段为空,然后以JSON形式返回给客户端时就会出现这样的数据:repairs = “”这个数据类型不是nil 也不是 String。 解析成对象之后,如果直接向这个对象发送消息(eg:length,count原创 2016-11-17 16:31:13 · 1186 阅读 · 0 评论 -
iOS7 edgesForExtendedLayout&automaticallyAdjustsScrollViewInsets
一、edgesForExtendedLayoutedgesForExtendedLayout是一个类型为UIExtendedEdge的属性,指定边缘要延伸的方向。因为iOS7鼓励全屏布局,它的默认值很自然地是UIRectEdgeAll,四周边缘均延伸,就是说,如果即使视图中上有navigationBar,下有tabBar,那么视图仍会延伸覆盖到四周的区域。默认的布局将从navigation bar的原创 2016-08-26 16:31:56 · 909 阅读 · 0 评论 -
iOS框架介绍
一、前言框架是一个目录,这个目录包含了共享库,访问共享库里代码的头文件,和其它的图片和声音的资源文件。一个共享库定义的方法或函数可以被应用程序调用。iOS提供了很多你可以在应用程序里调用的框架。要使用一个框架,需要将它添加到你的项目中,你的项目才可以使用它。许多应用程序都使用了如Foundation、UIKit、和Core Graphics这些框架。根据你为应用程序选择的模版,相关的框架就已经被自动原创 2016-06-24 18:22:26 · 1471 阅读 · 0 评论 -
iOS 常用公共方法(一)
1、获取磁盘总空间大小//磁盘总大小+ (CGFloat)diskofAllSizeMBytes{ CGFloat size = 0.0; NSError* error; NSDictionary* dic = [[NSFileManager defaultManager]attributesOfFileSystemForPath:NSHomeDirectory() err原创 2016-06-28 11:12:28 · 2640 阅读 · 1 评论 -
nil,Nil,NULL和NSNull
一、nilnil是Objective-C的字面空值,对应id类型的对象; 定义一个实例为空,指向oc中对象的空指针; 我们给对象赋值时一般会使用object = nil,表示我想把这个对象释放掉; 判断: if (object == nil) { } if (object) { } 注意:如果一个对象为nil,数组或字典添加其为新元素时,会引起崩溃;二、Niln原创 2015-12-30 18:15:20 · 452 阅读 · 0 评论 -
copy和mutableCopy
//CXToModalVC.h#import <UIKit/UIKit.h>@class CXToModalVC;@protocol CXToModalVCDelegate <NSObject>-(void)dismissViewController:(CXToModalVC *)mcv;@end@interface CXToModalVC : UIViewController@property(non原创 2015-12-29 00:46:01 · 503 阅读 · 0 评论 -
返回值(null)和<null>处理【空指针和野指针】
一、返回值为(null)判断:if (obj == nil) { NSLog(@"(null)");}二、返回值为判断:if ([obj isEqual:[NSNull null]]) { NSLog(@"null");}原创 2015-12-27 00:52:45 · 1243 阅读 · 0 评论 -
iOS开发 - 事件传递响应链
一、序言当我们在使用微信等工具,点击扫一扫,就能打开二维码扫描视图。在我们点击屏幕的时候,iphone OS获取到了用户进行了“单击”这一行为,操作系统把包含这些点击事件的信息包装成UITouch和UIEvent形式的实例,然后找到当前运行的程序,逐级寻找能够响应这个事件的对象,直到没有响应者响应。这一寻找的过程,被称作事件的响应链,如下图所示,不用的响应者以链式的方式寻找。 事件响应链: 二、原创 2017-02-13 11:42:25 · 1160 阅读 · 0 评论 -
iOS导航栏的正确隐藏方式
简介 在项目中经常碰到首页顶部是无限轮播,需要靠最上面显示.有的设置导航栏为透明等一系列的方法,这个可以借助第三方.或者干脆简单粗暴的直接隐藏掉导航栏.可是push到下一个页面的时候是需要导航栏的,如何做了,这里给出两种方法.第一种做法注意这里一定要用动画的方式隐藏导航栏,这样在使用滑动返回手势的时候效果最好,和上面动图一致.这样做有一个缺点就是在切换tabBar的时候有一个导航栏向上消失的动转载 2017-06-09 13:46:17 · 832 阅读 · 0 评论 -
线程中添加定时器NSTimer
参考:https://my.oschina.net/u/936286/blog/159490- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.window = [[[UIWindow alloc] in...转载 2018-04-19 14:49:10 · 689 阅读 · 0 评论 -
iOS 常用公共方法(四)
原文链接:点击这里1、navigationBar变为纯透明//第一种方法//导航栏纯透明[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];//去掉导航栏底部的黑线self.navigationBar.shadowImage = [UIImage new];//第二种方原创 2016-11-21 15:58:15 · 362 阅读 · 0 评论 -
正则表达式
前言:在表达验证中,我们经常会使用到正则,应为我们需要用于来判断用户输入的字符是否为合法的,如果是不合法的,那么应该提示用户输入错误,并不让提交至服务器。我们也可以通过正则表达式,从用户输入的字符串中过滤并获取我们想要的特定部分。总而言之,正则表达式是非常强大的。一、谓词(NSPredicate)创建正则表达式使用它来判断用户输入的字符串是否为合法的:- (void)viewDidLoad {原创 2015-12-27 01:40:06 · 1093 阅读 · 0 评论 -
NSAttributedString
一、字符属性字符属性:字符属性可以应用于NSAttributedString中(1)、NSString *const NSFontAttributeName;(字体)(2)、NSString *const NSParagraphStyleAttributeName;(段落)(3)、NSString *const NSForegroundColorAttributeName;(字体颜色)(4)原创 2015-12-27 00:59:07 · 1508 阅读 · 0 评论 -
添加字体
1、下载资源:后缀为.ttf或odf 例如:http://www.webpagepublicity.com/free-fonts.html2、把字体库导入到工程的resouce中;3、在工程的Info.plist文件中新建一行(Add Row),添加Key:Fonts provided by application,类型为Array或Dictionary;然后新建一个键值对,key为:Item原创 2015-12-27 01:03:06 · 463 阅读 · 0 评论 -
NSPredicate(正则表达式核心类)
一、定义谓词:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。NSpredicate是一个Foundation类,它指定数据被获取或者过滤的方式。它的查询语言就像SQL的WHERE和正则表达式的交叉一样,提供了具有表现力的,自然语言界面来定义一个集合被搜索的逻辑条件。NSPredicate对象来代表谓词,它有三个类:NSCompar原创 2015-12-27 01:11:09 · 1715 阅读 · 0 评论 -
获取唯一标识符
一、iOS不同版本获取唯一标识符的方法比较1、iOS 5:UDID(Unique Device Identifier)iOS 2.0版本以后UIDevice提供一个获取设备唯一标识符的方法uniqueIdentifier,通过该方法我们可以获取设备的序列号,这个也是目前为止唯一可以确认唯一的标识符。但是,因为该唯一标识符与手机一一对应,苹果觉得可能会泄露用户隐私,所以在iOS 5.o之后该方法就被废原创 2015-12-27 01:31:54 · 4846 阅读 · 0 评论 -
NSString与Unicode
NSString的API中有两个方法:(1)、rangeOfString:(2)、rangeOfString:option:举个例子: 字符串中有一个”:”结果就是找不到,这样就导致了代码的crash。然后看如下: 打印一下length,竟然是2。那为啥找不到呢.换一种方式:Unicode对于组成有两种形式:合成形式与分解形式。而NSString的rangeOfString,这个api对此原创 2015-12-27 01:48:44 · 501 阅读 · 0 评论 -
ARC和非ARC文件混编
在编程过程中,我们会用到很多各种各样的他人封装的第三方代码,但是有很多第三方都是在非ARC情况下运行的,当你使用第三方编译时出现和下图类似的错误,就说明该第三方是非ARC的,需要进行一些配置。解决方法:苹果文档Transitioning to ARC Release Notes有一种解决办法为: Use Compiler Flags to Enable and Disable ARC原创 2016-05-25 13:58:55 · 545 阅读 · 0 评论 -
iOS开发之layoutSubviews的作用和调用机制
一、定义在UIView里面有一个方法layoutSubviews,这个方法定义如下 - (void)layoutSubviews; // override point. called by layoutIfNeeded automatically. As of iOS 6.0, when constraints-based layout is used the base implementa原创 2016-06-06 10:49:19 · 9967 阅读 · 0 评论 -
iOS开发之drawRect的作用和调用机制
一、重绘机制iOS的绘图操作是在UIView类的drawRect方法中完成的,所以如果我们要想在一个UIView中绘图,需要写一个扩展UIView 的类,并重写drawRect方法,在这里进行绘图操作,程序会自动调用此方法进行绘图。 重绘操作仍然在drawRect方法中完成,但是苹果不建议直接调用drawRect方法,当然如果你强直直接调用此方法,当然是没有效果的。苹果要求我们调用UIView类中原创 2016-06-06 11:33:02 · 19591 阅读 · 0 评论 -
+load和+initialize
一、load初探1、介绍先看看 NSObject Class Reference 中关于 + (void)load 的说明:DiscussionThe load message is sent to classes and categories that are both dynamically loaded and statically linked, but only if the newly原创 2016-08-25 17:45:02 · 600 阅读 · 0 评论 -
键盘遮挡输入框的问题
iOS开发之时键盘通知之前处理这种问题,总是在触发输入框编辑事件键盘弹出的时候,将当前的View整体向上移动,结束编辑又整体向下移,耗时耗力效率低。1.在ViewController.m文件声明#import "ViewController.h"@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>@prope原创 2016-11-18 16:15:13 · 372 阅读 · 0 评论 -
iOS开发Foundation中的断言处理
Foundation中定义了两组断言的宏,分别是: NSAssert / NSCAssert NSParameterAssert / NSCParameterAssert这两组宏主要在功能和语义上有所差别,这些区别主要有以下两点:1、如果我们需要确保方法或函数的输入参数的正确性,则应该在方法(函数)的顶部使用NSParameterAssert / NSCParameterAssert原创 2017-02-08 16:54:09 · 332 阅读 · 0 评论 -
iOS 权限统计
一、权限添加1、麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风?2、相机权限: Privacy - Camera Usage Description 是否允许此App使用你的相机?3、相册权限: Privacy - Photo Library Usage Description 是否允许此App访问你的媒体资料库...原创 2018-05-09 10:31:07 · 814 阅读 · 0 评论