IOS
文章平均质量分 78
HONG321
这个作者很懒,什么都没留下…
展开
-
【Objective-C】06-OC对象中的self
OC对象中的self,有点像C#中的this。但是又有差异,self可以用来指向当前对象的对象方法,也可以指向当前对象的类方法。而this不能指向C#中的静态方法(类方法)。self用途:1、当方法中声明了一个跟类成员变量重名的变量,直接访问成员变量名时,默认优先访问方法内部声明的变量。当想要访问类的成员变量时,就要用self->成员变量名的方式来访问了。2、谁调用了当前方法,self原创 2014-12-11 21:45:53 · 560 阅读 · 0 评论 -
【Objective-C】13-类和方法的本质
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------一、类的本质1.1 类的本质是对象,是Class类型的对象,简称类对象。1.2 类的创建过程:Person *p = [[Person alloc] init]; 1>利用Class创建Person类对象; 2>利用Person类对象,创建Perso原创 2015-02-08 19:48:55 · 694 阅读 · 0 评论 -
【Objective-C】12-分类
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------一、分类的作用分类的英文名是Category,本身必须依赖于一个现有类,用于在不改变原来类的代码的基础上,为类扩充方法。使用分类,一个庞大的类可以分模块开发,可以由多个人来编写,更有利于团队合作。二、类的声明和实现2.1 分类的声明@interface 类名 (分类原创 2015-02-08 12:48:12 · 587 阅读 · 0 评论 -
【Objective-C】07-OC对象的继承
1、继承的好处:1.1 继承可以抽取重复的代码,减少代码量,提高代码的利用性1.2 面向对象的多态就是基于继承1.3 继承建立了类与类之间的关系1.4 子类可以拥有中的所有成员变量和方法1.5 当子类想要拥有和父类同名但是不一样的实现方式时,可以重写父类的方法,提高代码的灵活性2、继承的声明2.1 声明和实现父类方法 :@interface Animal:N原创 2014-12-13 11:08:44 · 517 阅读 · 0 评论 -
【Objective-C】15-block和协议
一、block1.1 block的作用:block是苹果推荐的类型,效率高,可以在运行中保存 一段代码,并在任何时候执行。常用来封装和保存代码。1.2 block和函数的相似性:(1)可以保存代码(2)有返回值(3)有形参(4)调用方式一样。1.3 block的标识符是:^1.4 定义block变量void (^myblock)() = ^(){// myblock是b原创 2015-02-26 16:40:33 · 516 阅读 · 0 评论 -
【Objective-C】11-构造方法
一、构造方法的作用: 构造方法是用来初始化对象的方法,是个对象方法,-开头。构造方法只有一个作用,就是初始化成员变量。当一个对象初始化的时候需要有默认值,就可以用到构造方法。二、构造方法的原则: 成员变量属于哪个类,就在哪个类那里进行初始化。父类的属性交给父类方法去处理,子类方法处理子类自己的属性。原创 2015-02-07 23:38:49 · 567 阅读 · 1 评论 -
【C语言】02-C语言字符串长度和OC字符串对象长度计算的比较
OC字符串对象主要是用length来计算字符串的长度。而C语言字符串长度的计算方法主要有两个。一个是sizeof,一个是string.h头文件下的strlen。以下是它们各自计算的区别:1、C语言中的sizeof1.1 sizeof(str)主要计算的是字符串占用字节的大小,并且会把''\0'结束字符计算在内。1.2 如果传递进来的是个指针字符串,则计算的是该指针占用的字节数大小,在3原创 2014-12-14 12:10:52 · 2188 阅读 · 0 评论 -
【Foundation】19-NSNumber、NSValue和NSDate
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------一、NSNumber 1.1 NSNumber的作用:由于集合类型只能存放OC类型数据,无法存放int类型数据。当在开发中需要int类型的数据时,可以将int类型包装成NSNumber对象再存放。 1.2 NSNumber和int的转换 // 将数值10转原创 2015-03-01 12:05:43 · 599 阅读 · 0 评论 -
【UI】自定义cell的步骤
一、自定义Cell的实现方式1.1 使用xib自定义Cell 当每个Cell中的内容是固定的,控件个数、位置、尺寸等都一样的时候可以使用xib的方式来自定义cell1.2 通过手写代码的方式实现 当每个Cell的结构不一样,每个Cell中的控件的个数、样式都不一样的时候使用手写代码的方式来自定义cell二、xib方式实现自定义Cell的步骤1原创 2015-07-19 07:28:40 · 881 阅读 · 0 评论 -
Objective-C 的“多继承”
转载地址: http://blog.csdn.net/yiyaaixuexi/article/details/8970734当单继承不够用,很难为问题域建模时,我们通常都会直接想到多继承。多继承是从多余一个直接基类派生类的能力,可以更加直接地为应用程序建模。但是Objective-C不支持多继承,由于消息机制名字查找发生在运行时而非编译时,很难解决多个基类可能导致的二义性问题。转载 2017-07-12 22:15:32 · 502 阅读 · 0 评论 -
[Object-c] Log(输出数组和字典的中文内容)
#import @interface NSArray (Log)@end@interface NSDictionary (Log)@end#import "NSArray+Log.h"@implementation NSArray (Log)//这个方法是专门针对国际化语言调试使用的,一旦实现,再输出数组,就会调用此方法。//因为是调试使用的,只要实现分类方法,就会原创 2017-07-12 22:39:43 · 1312 阅读 · 0 评论 -
[Object-C]CGD&NSOperation
1、并发队列开多条线程,具体能开的线程数量由底层线程池决定。iOS7.0以及之前,GCD通常只会开启5-6条线程,iOS8.0之后,GCD能够开启非常多的线程(八十多条)。2、如果任务没有先后执行顺序的要求,并且需要效率高,执行快,那么可以使用多线程。缺点是:费电,而且耗流量。适用于wifi或者包月的流量。3、实际开发中,wifi线程数6条,3G / 4G 移动开发的时候,2~3条,再原创 2017-07-12 22:48:52 · 408 阅读 · 0 评论 -
【Objective-C】哈希算法(MD5)工具类
1、MD5算法是对任意一个二进制数据进行加密,可以得到定长的字符串结果。是一种单向加密。 2、MD5是散列(哈希)算法的一种,加密结果是32个字符。SHA1加密结果是40个字符。Git版本穿越用的就是SHA1。 3、对原文进行两次MD5的处理不安全,很容易就可以破解。(只要有足够多条的数据,就可以有很大可能被匹配出来,如www.cmd5.com) 4、对数据进行加盐,两年前用的比原创 2017-07-18 16:13:39 · 1101 阅读 · 0 评论 -
【Objective-C】14-内存管理
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------一、内存管理的意义移动设备的内存比较有限,每个app所能占用的内存也是有限制的,超出限制范围可能导致程序崩溃,需要合理分配内存。内存管理的对象是任何继承了NSObject的对象,对其他基本数据类型(int、double、float、char、struct、enum等)无效。这是原创 2015-02-10 20:48:16 · 518 阅读 · 0 评论 -
【Foundation】17-字符串NSString和NSMutableString
一、NSString 1.1 NSString是不可变字符串,即字符串的内容在内存中是不可变的。针对此字符串的操作(如拼接,删除等),都是拷贝字符串到新的字符串中进行操作,并返回新字符串。1.2 字符串的创建 NSString *s1 = @"jack"; //NSString *s2 = [[NSString alloc] initWithString:@"jack"]; /原创 2015-02-26 22:46:37 · 577 阅读 · 0 评论 -
【Foundation】18-集合类NSArray、NSSet、NSDictionary
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------一、NSArray1.1 NSArray是OC数组,是不可变数组。OC数组只能存放OC对象,不能存放非OC对象类型,比如int、struct、enum等。1.2 NSString不能存放nil值。nil值是数组元素结束的标记。原创 2015-02-27 07:30:38 · 665 阅读 · 0 评论 -
【Objective-C】08-OC对象的super关键字
OC对象中的关键字super是用来直接调用父类中的某个方法用的。一般用来子类重写父类的方法时,想要保留父类的一些行为,减少代码重复,所以就用super关键字来调用父类现成方法。使用super要注意的关键点是:super所处的位置决定了子类要调用父类的哪个方法。当super处在对象方法中时,调用的是父类同名的对象方法;当super处在类方法中时,调用的是父类同名的类方法。#import原创 2014-12-13 11:56:25 · 571 阅读 · 0 评论 -
【Objective-C】03-OC对象struct类型成员变量的赋值
当OC对象的成员变量是struct类型时,如果直接用c语言的方式直接赋值就会报错,如s->birthday={1990,12,11};就会抛出错误。有两种方法可以解决这个问题:一、声明并初始化一个struct类型临时变量,再整个赋值给birthday成员。二、对birthday成员内部的各个元素分开赋值。#import //性别枚举typedef enum{ Sex原创 2014-12-06 09:34:40 · 3185 阅读 · 0 评论 -
【Objective-C】02-OC对象作为参数传递给函数
OC对象可以作为函数参数传递给参数,以下简述对象参数在函数中的两种情况:一、对象作为参数传递到函数中,在函数内部对此对象的参数会影响到外部传递进来的对象。二、对象作为参数传递到函数中,在函数内部指向其它的对象后,再对此参数对象进行操作时,不影响外部传递进来的对象。如下文中的例子,函数test1为情况一,函数test2为情况二。#import //声明Car原创 2014-12-04 23:08:43 · 3829 阅读 · 0 评论 -
【Objective-C】09-OC中的点语法和成员变量的作用域
1、点语法的来由 对对象成员变量的操作,最常规的做法是让成员变量私有化,让外界使用公共的get方法和set方法访问成员变量。很多其他的高级语言都有点语法,为了让其他行业的程序员快速上手OC,OC中也引入了点语法,只不过它的含义跟其他语言不太一样。2、点语法的本质 2.1 点语法的本质是方法的调用,其实是XCode在内部进行转换。 如:p.age = 10原创 2015-02-04 17:23:48 · 549 阅读 · 0 评论 -
【ObjectC】Xcode的常用快捷键
1、撤消:Command+Z2、撤消回复:Command+control+shift+Z3、打开辅助视图:Option+cmd+Enter 4、取消辅助视图:cmd+Enter5、打开或者取消左边的导航栏:cmd+06、打开或者取消右边的属性视图:option + cmd+0原创 2015-04-20 00:18:04 · 548 阅读 · 0 评论 -
如何自定义button的点击有效区域
某些情况下我们需要按钮有不规则的形状,在这些形状内点击才有响应,例如下面的图片中:图片中红线圈出的两处都是用按钮做的,按钮的实际布置是上面第二张图所画的那样,所有按钮都是矩形的,但是中间的按钮和一圈的转盘形状都不可能用矩形,否则点击的时候难免相互影响。那么如何自定义按钮点击的有效区域呢,其实很简单,只要重写一个函数即可:- (BOOL)poi转载 2015-05-21 21:44:09 · 4028 阅读 · 0 评论 -
【Objective-C】01-一个简单OC类的浅析
刚开始学习oc,感觉跟C#的类有很大的不一样。1、oc类的导入用的是#import关键字。2、oc的基类是NSObject。类对象的创建要显示继承自NSObject。3、oc的关键字都是以@开头,字符串也是以@开头。如@public表示成员变量的访问级别是公共的。4、oc类在@interface和@end中声明,方法在@implementation和@end中实现。5、类的对象原创 2014-12-04 21:39:35 · 695 阅读 · 0 评论 -
【Objective-C】05-OC对象中类方法和对象方法的比较
一、类方法1.1 当当前方法中不涉及类的成员变量时,可以把方法声明成类方法。这样做的好处是可以不用声明类的实例对象,减少内存空间的占用,提高运行效率。即类的方法不依赖于对象。1.2 以加号 + 开头1.3 只能由类(名)来调用1.4 类方法中不能访问类的成员变量。如果访问,会报 error:instance variable 'age' accessed in class meth原创 2014-12-10 22:15:06 · 2631 阅读 · 0 评论 -
【ObjectC】oc中的内存分配
一、内存分配顺序 程序一启动的时候就会先加载代码区中的代码,然后加载常量区中的常量,接着加载全局区和静态区(初始化过的静态区和没有初始化过的静态区是分开的),以上四个区都是随着程序启动而加载到内存中,随着程序的退出而销毁。程序员不需要管理这一块的内存。 堆区:堆区用来存放对象,需要使用alloc来分配内存空间。程序员需要管理堆区的内存。ARC的内存管理,是Xcode原创 2015-06-13 22:59:38 · 1365 阅读 · 0 评论 -
【Objective-C】04-OC对象成员变量的封装规范:get方法和set方法
面向对象的三大特性:封装、继承和多态。其中,成员变量的封装非常常用。OC在这点上和C#本质上是一样的,都是用方法对字段进行封装。成员变量封装成属性的优点显而易见,都是不允许外界直接访问成员变量,而只能通过方法来进行访问。如果该成员变量不想被外界调用,只要不提供对外的接口就可以了。通过封装,可以限制外界对成员变量的读和写操作,以及对写set方法中的参数值进行过滤。下面是成员变量的封装规范:一、成原创 2014-12-06 13:53:53 · 1186 阅读 · 0 评论 -
【Objective-C】10-@property和@synthesize
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------一、@property和@synthesize的作用: 由于在oc语法中对成员变量的完整访问都需要先在@interface和@end之间声明成员变量,然后再声明这个成员变量的get方法和set方法。并且在@implementation和@end之间实现这个成员变量的g原创 2015-02-07 11:19:41 · 1627 阅读 · 0 评论 -
【Object-C】 NSTimer用法,暂停,继续,初始化
转载:NSTimer的使用方法1、初始化+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;+ (NSTimer *)scheduledT转载 2015-07-17 00:28:38 · 1410 阅读 · 0 评论 -
【Objective-C】Base64
base64算法能把任何二进制数据转换成文本文件, 二进制数据默认是按照8位一字节进行编码的,base64编码则是按照特定的字符表按照6位一分,最终得到的数值。每差一位,末位补两个0.对应字符表中的=号。所以base64编码比较容易辨认,如果文本最后面是等号,就有很大可能是base64编码。简介是网络上使用最广泛的编码系统,能够将任何二进制数据,转换成只有 65 个字符原创 2017-07-18 16:26:52 · 980 阅读 · 0 评论