oc
文章平均质量分 80
HX_lei
这个作者很懒,什么都没留下…
展开
-
OC常见的关键字介绍
OC常见的关键字介绍:@看到这个关键字,我们就应该想到,这是Object-C对C语言的扩展,例如@interface XXX。@interface声明类@implementation实现类@protocol声明协议@optional与@protocol配合使用,说明协议中的某个或者某几个方法可以不实现@required转载 2016-03-15 17:41:20 · 890 阅读 · 0 评论 -
自动提示宏--输入什么属性,就把属性自动生成OC字符串
自定义下面的宏就拥有自动提示属性功能#define XMGkeyPath(objc, keyPath) @(((void)objc.keyPath, #keyPath))1212一:作用和使用场景自动提示宏意义:输入什么属性,就把属性自动生成OC字符串.自动提示宏作用:输入某个对象的某个属性的时候有自动提示功能自动提示宏应用场景:在KVO,KVC中使用自动提示宏,监听某个对象转载 2016-10-04 11:31:03 · 682 阅读 · 0 评论 -
IOS-- UIView中的坐标转换
// 将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的像素值- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;// 将像素point从view中转换到当前视图中,返回在当前视图中的像素值- (CGPoint)convertPoint:(CGPoint)point from原创 2016-10-07 14:01:20 · 349 阅读 · 0 评论 -
十六进制的颜色值直接转为ios可用的UIColor
//////////////////////////// @interface UIColor (extension) + (UIColor*) colorWithHex:(NSInteger)hexValue alpha:(CGFloat)alphaValue; + (UIColor*) colorWithHex:(NSInteger)hexValue; + (NSString *)转载 2016-10-07 16:57:45 · 345 阅读 · 0 评论 -
appearance与appearanceWhenContainedIn的使用
+ appearance修改整个程序中某个class的外观[[UINavigationBar appearance] setTintColor:myColor];+ appearanceWhenContainedIn: 当某个class被包含在另外一个class内时,才修改外观。 [[UILabelappearanceWhenContainedIn:[cusSear转载 2016-10-07 17:02:02 · 1534 阅读 · 0 评论 -
iOS中 @synthesize 和 @dynamic
在声明property属性后,有2种实现选择@synthesize编译器期间,让编译器自动生成getter/setter方法。当有自定义的存或取方法时,自定义会屏蔽自动生成该方法@dynamic告诉编译器,不自动生成getter/setter方法,避免编译期间产生警告然后由自己实现存取方法或存取方法在运行时动态创建绑定:主要使用在CoreDa转载 2016-12-05 14:25:09 · 305 阅读 · 0 评论 -
NSString 剪切一个字符串 deleteCharactersInRange
NSMutableString 为可变的字符串 NSString 为不可变的字符串- (void)viewDidLoad{ NSMutableString *a = [[NSMutableString alloc] initWithString:@"123456798"]; NSLog(@" \n a:转载 2017-01-06 16:42:16 · 1323 阅读 · 0 评论 -
ios 获取当前准确时间
获取当前时间:(之前做倒计时时发现一些bug,这里对获取当前时间进行总结)启动app时发送服务器时间请求获取当前最新时间,存储到内存;退到后台或锁屏手机后再进入前台情况下最新时间:这里处理的方案是将(启动app时获取到的服务器时间 - 当时获取服务器时间时处系统运行时长 + 现在的系统运行时长)这里只要能得到系统运行时长即可:了解下ios关于时间的处理:1.NSDate对象...原创 2018-10-10 11:12:38 · 3564 阅读 · 0 评论 -
常见的线上异常崩溃一
一.UITableView reloadData的崩溃:[tableView reloadData]后当需要立即获取tableview的cell、高度,或者需要滚动tableview,那么直接在reloadData后执行代码是会有问题的。(如 在项目中用到scrollToRowAtIndexPath,但程序一旦调用scrollToRowAtIndexPath就出错,经分析是数据源和tablev...原创 2018-10-10 11:14:29 · 658 阅读 · 0 评论 -
iOS 关于枚举的使用
引言:枚举值 它是一个整形(int) 并且,它不参与内存的占用和释放,枚举定义变量即可直接使用,不用初始化.在代码中使用枚举的目的只有一个,那就是增加代码的可读性.使用:枚举的定义如下:[csharp] view plain copytypedef enum { //以下是枚举转载 2016-11-08 14:34:22 · 278 阅读 · 0 评论 -
浅谈iOS开发.a静态库的打包(包括打包的文件中用到了一些别人的三方库和分类的处理)
最近一个人在做一个即时通讯SDK的项目,所以就用到了静态库的打包,开始遇到一些困难和莫名的bug,不过现在已经基本完成。现在,浅谈一下个人经验。首先,概述一些最基本的名词概念,也是为了大家能更好的理解我们究竟在做什么 为什么要这样做 有了这些基本的逻辑思维 那么其他什么就都不是事哈 (不要拦我 我要开始发功了)哈哈哈一、概念篇什么是库?库是程序代码的集合,是转载 2016-10-10 14:56:10 · 3946 阅读 · 0 评论 -
oc语言--NSValue
实际上NSMunber是NSValue的子类,NSValue可以包装任意一个对象,可以用NSValue将struct存到NSArray和NSDictionary中。 1、+ (NSValue *)valueWithBytes:(const void *)value objCType:(const char *)type;创建一个NSValuevalue:对象地址objCType转载 2016-05-08 12:01:15 · 410 阅读 · 0 评论 -
类别扩张协议委托
类别(category)——通过使用类别,我们可以动态地为现有的类添加新方法,而且可以将类定义模块化地分不到多个相关文件中。通常只在类别中定义方法。[objc] view plain copy print?在CODE上查看代码片派生到我的代码片类别,接口部分的定义,通常该文件命名为已有"类+类别名.h" @interface 已有类 (类别名) //.......方法实现转载 2016-03-15 17:43:44 · 305 阅读 · 0 评论 -
深复制浅复制
读前小提示:对于深浅复制有一个清楚的了解,对于学习oc的朋友来说,至关重要。那么首先,我们要明白深浅复制是如何定义的呢。这里为了便于朋友们理解,定义如下。 浅 复 制:在复制操作时,对于被复制的对象的每一层复制都是指针复制。 深 复 制:在复制操作时,对于被复制的对象至少有一层复制是对象复制。 完全复制:在复制操作时,对于被复制的对象的每一层复制都是对象复制。转载 2016-03-15 17:44:36 · 308 阅读 · 0 评论 -
委托和协议
委托就是秘书委托是objC中使用非常频繁的一种设计模式,它的实现与协议的使用是分不开的,让我们看一个综合示例:小公司老板日常的工作是管理公司、教导新员工、发工资与接电话。其中管理公司、教导新员工是老板要亲为的。而发工资与接电话老板希望招聘一个秘书来帮忙,于是对秘书的要求就是要略懂出纳发工资,要能帮助领导接电话。 而这两项要求便是协议,对类功能的限定。// SecProtocol.h转载 2016-03-15 17:46:46 · 331 阅读 · 0 评论 -
选择器Selector的使用
selector oc 数据类型 选择器 跨类传参 方法名 sel it 分类: [iPhone开发] Selector是OC特有的一种数据类型。可以简单理解为方法的调用。和普通方法调用不同的是。选择器的特点是可以跨类传参。你可以在A类中声明某方法,然后在B类中控制该方法的调用。 说白了SEL就是返回方法名。 这样的机制大大的增加了我们的程序的灵活性,我们可以通过给一个方法传递S转载 2016-03-15 17:50:03 · 566 阅读 · 0 评论 -
正式和非正式
这两个概念困扰我很久了,一直都很像搞清楚到非正式协议和正式协议有什么区别和联系,下面结合网上的资料和自己的看法谈谈这个问题。一、非正式协议显然这个名词是相对于正式协议而言的。在解释非正式协议之前,先引用两段话:1、在《Cocoa设计模式》第六章类别的6.3.2把类别用于非正式协议一节中,这样写到:非正式协议通常定义为NSObject的类别。类别接口中指定的方法可能会或者可能不会被框转载 2016-03-15 17:51:07 · 436 阅读 · 0 评论 -
什么是ARC?
OC中的ARC机制总结什么是ARC?ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心内存管理,因为编译器为你处理了一切ARC 是编译器特性,而不是 iOS 运行时特性,它也不是类似于其它语言中的垃圾收集器。因此 ARC 和手动内存管理性能是一样的,有时还能更转载 2016-03-15 17:54:42 · 1376 阅读 · 0 评论 -
NSString属性什么时候用copy,什么时候用strong?
我们在声明一个NSString属性时,对于其内存相关特性,通常有两种选择(基于ARC环境):strong与copy。那这两者有什么区别呢?什么时候该用strong,什么时候该用copy呢?让我们先来看个例子。示例我们定义一个类,并为其声明两个字符串属性,如下所示:1234@interface TestStringClass ()@proper转载 2016-05-08 11:31:35 · 321 阅读 · 0 评论 -
Foundation框架NSNumber、NSValue和NSDate
一、NSNumber 前几篇笔记中,小桥复习了Foundatio框架中的几个类,这三个是OC学习的尾声了。 小桥已经复习过OC数组类NSArray,也说过它只能存放OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int、float,结构体存放的OC数组中,怎么办?这里的NSNumber就有用了,它能够把基本数据类型包装成OC对象。 //转载 2016-05-08 11:59:48 · 284 阅读 · 0 评论 -
常见的异常崩溃二
1、越界问题,包括数组越界(objectAtIndex:)、字符串越界(characterAtIndex:);异常显示:NSRangeException: -[__NSArrayI objectAtIndex:]: index 10 beyond bounds [0 .. 9]';方案:在根据下标取值时,先进行边界检查判断,如果没有越界方可取值。2、数据集合类型,如字典、数组中插入空n...原创 2018-10-10 11:15:48 · 593 阅读 · 0 评论