- 博客(52)
- 资源 (2)
- 收藏
- 关注
原创 【Objective-C】Base64
base64算法能把任何二进制数据转换成文本文件, 二进制数据默认是按照8位一字节进行编码的,base64编码则是按照特定的字符表按照6位一分,最终得到的数值。每差一位,末位补两个0.对应字符表中的=号。所以base64编码比较容易辨认,如果文本最后面是等号,就有很大可能是base64编码。简介是网络上使用最广泛的编码系统,能够将任何二进制数据,转换成只有 65 个字符
2017-07-18 16:26:52
1152
原创 【Objective-C】哈希算法(MD5)工具类
1、MD5算法是对任意一个二进制数据进行加密,可以得到定长的字符串结果。是一种单向加密。 2、MD5是散列(哈希)算法的一种,加密结果是32个字符。SHA1加密结果是40个字符。Git版本穿越用的就是SHA1。 3、对原文进行两次MD5的处理不安全,很容易就可以破解。(只要有足够多条的数据,就可以有很大可能被匹配出来,如www.cmd5.com) 4、对数据进行加盐,两年前用的比
2017-07-18 16:13:39
1210
原创 [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
461
原创 [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
1388
转载 Objective-C 的“多继承”
转载地址: http://blog.youkuaiyun.com/yiyaaixuexi/article/details/8970734当单继承不够用,很难为问题域建模时,我们通常都会直接想到多继承。多继承是从多余一个直接基类派生类的能力,可以更加直接地为应用程序建模。但是Objective-C不支持多继承,由于消息机制名字查找发生在运行时而非编译时,很难解决多个基类可能导致的二义性问题。
2017-07-12 22:15:32
544
原创 【UI】自定义cell的步骤
一、自定义Cell的实现方式1.1 使用xib自定义Cell 当每个Cell中的内容是固定的,控件个数、位置、尺寸等都一样的时候可以使用xib的方式来自定义cell1.2 通过手写代码的方式实现 当每个Cell的结构不一样,每个Cell中的控件的个数、样式都不一样的时候使用手写代码的方式来自定义cell二、xib方式实现自定义Cell的步骤1
2015-07-19 07:28:40
947
转载 【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
1489
原创 【ObjectC】oc中的内存分配
一、内存分配顺序 程序一启动的时候就会先加载代码区中的代码,然后加载常量区中的常量,接着加载全局区和静态区(初始化过的静态区和没有初始化过的静态区是分开的),以上四个区都是随着程序启动而加载到内存中,随着程序的退出而销毁。程序员不需要管理这一块的内存。 堆区:堆区用来存放对象,需要使用alloc来分配内存空间。程序员需要管理堆区的内存。ARC的内存管理,是Xcode
2015-06-13 22:59:38
1420
转载 如何自定义button的点击有效区域
某些情况下我们需要按钮有不规则的形状,在这些形状内点击才有响应,例如下面的图片中:图片中红线圈出的两处都是用按钮做的,按钮的实际布置是上面第二张图所画的那样,所有按钮都是矩形的,但是中间的按钮和一圈的转盘形状都不可能用矩形,否则点击的时候难免相互影响。那么如何自定义按钮点击的有效区域呢,其实很简单,只要重写一个函数即可:- (BOOL)poi
2015-05-21 21:44:09
4112
原创 【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
632
原创 【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
648
原创 【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
713
原创 【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
621
原创 【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
561
原创 【Foundation】16-NSRange、NSPoint、NSSize、NSRect知识点
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------一、NSRange1.1 NSRange本质是结构体,里面有location和length两个成员。1.2 NSRange表示元素在数组中的范围,location表示起始元素的下标,length表示要包含的元素个数。1.3 NSMakeRange函数可以用于创建NSRange对
2015-02-25 19:51:17
991
原创 【Objective-C】14-内存管理
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------一、内存管理的意义移动设备的内存比较有限,每个app所能占用的内存也是有限制的,超出限制范围可能导致程序崩溃,需要合理分配内存。内存管理的对象是任何继承了NSObject的对象,对其他基本数据类型(int、double、float、char、struct、enum等)无效。这是
2015-02-10 20:48:16
558
原创 【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
738
原创 【Objective-C】12-分类
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------一、分类的作用分类的英文名是Category,本身必须依赖于一个现有类,用于在不改变原来类的代码的基础上,为类扩充方法。使用分类,一个庞大的类可以分模块开发,可以由多个人来编写,更有利于团队合作。二、类的声明和实现2.1 分类的声明@interface 类名 (分类
2015-02-08 12:48:12
632
原创 【Objective-C】11-构造方法
一、构造方法的作用: 构造方法是用来初始化对象的方法,是个对象方法,-开头。构造方法只有一个作用,就是初始化成员变量。当一个对象初始化的时候需要有默认值,就可以用到构造方法。二、构造方法的原则: 成员变量属于哪个类,就在哪个类那里进行初始化。父类的属性交给父类方法去处理,子类方法处理子类自己的属性。
2015-02-07 23:38:49
643
原创 【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
1724
原创 【Objective-C】09-OC中的点语法和成员变量的作用域
1、点语法的来由 对对象成员变量的操作,最常规的做法是让成员变量私有化,让外界使用公共的get方法和set方法访问成员变量。很多其他的高级语言都有点语法,为了让其他行业的程序员快速上手OC,OC中也引入了点语法,只不过它的含义跟其他语言不太一样。2、点语法的本质 2.1 点语法的本质是方法的调用,其实是XCode在内部进行转换。 如:p.age = 10
2015-02-04 17:23:48
600
原创 【C语言】01-类型总结
C语言的数据类型分为基本数据类型、构造类型、指针类型、枚举类型和空类型等几种。一、基本数据类型1.1 整型int1>short int、short: 占2个字节,占位符:%d %i2>long int、long: 占8个字节,占位符:%ld3>signed int、signed: 占4个字节,占位符
2015-01-18 10:50:11
2059
原创 【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
2249
原创 【Objective-C】08-OC对象的super关键字
OC对象中的关键字super是用来直接调用父类中的某个方法用的。一般用来子类重写父类的方法时,想要保留父类的一些行为,减少代码重复,所以就用super关键字来调用父类现成方法。使用super要注意的关键点是:super所处的位置决定了子类要调用父类的哪个方法。当super处在对象方法中时,调用的是父类同名的对象方法;当super处在类方法中时,调用的是父类同名的类方法。#import
2014-12-13 11:56:25
610
原创 【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
556
原创 【Objective-C】06-OC对象中的self
OC对象中的self,有点像C#中的this。但是又有差异,self可以用来指向当前对象的对象方法,也可以指向当前对象的类方法。而this不能指向C#中的静态方法(类方法)。self用途:1、当方法中声明了一个跟类成员变量重名的变量,直接访问成员变量名时,默认优先访问方法内部声明的变量。当想要访问类的成员变量时,就要用self->成员变量名的方式来访问了。2、谁调用了当前方法,self
2014-12-11 21:45:53
599
原创 【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
2688
原创 【Objective-C】04-OC对象成员变量的封装规范:get方法和set方法
面向对象的三大特性:封装、继承和多态。其中,成员变量的封装非常常用。OC在这点上和C#本质上是一样的,都是用方法对字段进行封装。成员变量封装成属性的优点显而易见,都是不允许外界直接访问成员变量,而只能通过方法来进行访问。如果该成员变量不想被外界调用,只要不提供对外的接口就可以了。通过封装,可以限制外界对成员变量的读和写操作,以及对写set方法中的参数值进行过滤。下面是成员变量的封装规范:一、成
2014-12-06 13:53:53
1236
原创 【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
3263
原创 【Objective-C】02-OC对象作为参数传递给函数
OC对象可以作为函数参数传递给参数,以下简述对象参数在函数中的两种情况:一、对象作为参数传递到函数中,在函数内部对此对象的参数会影响到外部传递进来的对象。二、对象作为参数传递到函数中,在函数内部指向其它的对象后,再对此参数对象进行操作时,不影响外部传递进来的对象。如下文中的例子,函数test1为情况一,函数test2为情况二。#import //声明Car
2014-12-04 23:08:43
3915
原创 【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
730
转载 C# WinForm控件之Dock顺序调整
最近被.net winform中的控件布局搞困惑了,由于控件都是使用Dock方式的,操作起来也是比较方便,如果最大化,窗口大小调整等,都可以随着窗口大小的变化而变化。但问题是,.net winform的dock方式是根据先添加的控件顺序进行优先级Dock排列的,假设我想目前有三个控件A、B、C分别以 Top、Bottom以及Fill方式填充窗口即窗口看起来应该是这样的:------
2014-05-01 15:38:35
2275
转载 聚集索引和非聚集索引
聚集索引 一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。 聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。 聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包
2014-03-22 16:54:32
710
转载 Silverlight之AutoCompleteBox自定义过滤ItemFilter
需求分析:现在有表 City( name ,shortName) eg: city:广州 ,GZ ;上海,SH 在AutoCompleteBox 中输入“G”、GZ或“广”、“ 广州”都自动弹出“ 广州”. 实现 1.xaml代码UserControl xmlns:input="clr-namespace:System.Window
2014-01-21 13:55:28
832
原创 Asp.net AJAX调用后台注册脚本代码
使用asp.net自带的ajax控件,想要调用后台的脚本代码,最先开始用ClientScript.RegisterStartupScript(this.GetType(), "clear", "alert('更改失败。');");一直执行不成功,后来改用ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType
2014-01-02 16:34:08
781
转载 javascript之call方法
call 方法 请参阅 应用于:Function 对象 要求 版本 5.5 调用一个对象的一个方法,以另一个对象替换当前对象。 call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 参数 thisObj 可选项。将被用作当前对象的对象。 arg1, arg2, , argN 可选项。将被传递方法参数序列。 说明
2013-12-30 21:10:59
699
转载 在Silverlight中使用SESSION
首先Session是运行在服务器上的,而Silverlight运行在客户端。因此在Silverlight中使用SESSION的说法并不准确,只因大家经常这样搜索才起这个名字。 有两种方法实现Silverlight与Session的关联:方法一、通过WCF使用ASP.NET中的Session[因BasicHttpBinding不支持WCF中的Session,如使用WCF会话将报错 ]
2013-10-25 09:41:37
564
转载 JS操作Json总结
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。 本文主要是对JS操作JSON的要领做下总结。 在JSON中,有两种结构:对象和数组。
2013-05-05 15:07:47
558
转载 清空表数据和删除表truncate、delete、drop
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。 TRU
2013-05-03 15:00:16
1514
转载 SQLServer常用函数
数字函数(*)ABS() :求绝对值。CEILING():舍入到最大整数 。3.33将被舍入为4、2.89将被舍入为3、-3.61将被舍入为-3。 Ceiling→天花板FLOOR():舍入到最小整数。3.33将被舍入为3、2.89将被舍入为2、-3.61将被舍入为-4。 Floor→地板。ROUND():四舍五入。舍入到“离我半径最近的数” 。Round→“半径”。Round(3
2013-05-03 14:58:40
799
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人