![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IOS
文章平均质量分 56
技术人宝哥
北漂15年互联网技术人,服务于优酷,阿里,京东的大厂,深耕技术管理、广告变现、高并发/复杂系统架构设计
展开
-
VMware安装MacOS系统
转自:http://blog.csdn.net/sunboy_2050/article/details/8081091?reload前一篇博客,介绍了如何利用VMware安装MacOS系统,虽然可以安装成功,但也有不友好的地方,如:1)MacOS系统文件需要是ISO格式,不是原生的dmg格式;2)每次开机都需要借助HJMac工具来引导启动本文将再介绍一种利用原生dmg格式文转载 2013-05-14 14:52:01 · 1477 阅读 · 0 评论 -
Objective-C中的setter方法的内存管理
首先要先释放,在retain新值- (void) setBook:(Book *)book{ if(_book != book){ [_book release]; _book = [book retain]; }}原创 2013-07-26 15:04:13 · 1046 阅读 · 0 评论 -
Objective-C中@property内存管理以及其各种参数介绍
@property格式:@property ( 参数1,参数2) 类型 名称;1、setter处理:assign、retain、copy:(a)retain@property (retain) : set方法管理内存//这里的retain代表 release旧值,retain新值@property (retain) Book * book;在.h文件中给OC对象写@p原创 2013-07-26 15:05:49 · 1015 阅读 · 0 评论 -
Objective-C的自动释放池(autoreleasepool)、静态方法快速创建对象
自动释放池(autorelease pool)1、是OC里面的一种内存自动回收机制,一般可以将一些临时变量添加到自动释放池中,统一回收2、当自动释放池销毁时,池里面的所有对象都会调用一次release方法方法:(a)OC对象只需要发送一条autorelease消息,就会把这个对象添加到最近的自动释放池中(栈顶的释放池)(b)autorelease实际上只是把release的调用原创 2013-07-26 15:48:20 · 2431 阅读 · 0 评论 -
Objective-C中的Category的用法
category语法:1、OC中提供了一种与众不同的方式Category,可以动态的为已经存在的类添加新的方法、行为。分类只能扩展方法,不能写成员变量2、可以保证类的原始设计规模比较小,功能增加的时候再逐步扩展3、使用Category对类进行扩展的时候,不需要创建子类4、Category使用简单的方式,实现了类的相关方法的模块化,把不同的类方法分配到不同的文件中@inter原创 2013-07-26 16:13:45 · 932 阅读 · 0 评论 -
Objective-C中的block以及block实现监听器思想
Block(代码段):Block封装了一段代码,可以再任何时候执行Block可以作为函数参数或者函数返回值定义block方法一:#import "Button.h"void test(){ //^ 是block的标志 ,定义一个block返回值int类型,接受两个int类型的参数 int (^Sum) (int,int) = ^(int a, int b){原创 2013-07-26 16:52:40 · 1221 阅读 · 0 评论 -
Objective-C定义一个指向函数的指针、直接访问成员变量
通过*定义一个指向函数的指针: 方法一://指向函数的指针int sum(int a, int b){ return a+b;}void main (int argc, const char * argv[]){ @autoreleasepool { int (*sump)(int, int) = sum; int c = (*sump)(9,原创 2013-07-26 17:47:06 · 1697 阅读 · 0 评论 -
Objective-C之Foundation中常见的结构体struct
Foundation框架的结构体:首先介绍一下结构体void test(){ //定义Date这种结构体类型 struct Date{ int year; int month; int day; } //定义结构体变量 struct Date d = {2013, 07, 27}; d.day = 6;}原创 2013-07-27 11:26:51 · 1395 阅读 · 0 评论 -
Objective-C之foundation框架中的NSString的使用方法、指针基本用法、读取本地和远程文件
创建NSString的方法:NSString *str1 = @"Hello World";NSString *str2 = [[NSString alloc] init];str2 = @"Hello World";[str2 release];NSString *str3 = [[NSString alloc] initWithString:@"Hello World"];原创 2013-07-27 13:50:53 · 1524 阅读 · 0 评论 -
Objective-C之Foundation中的NSString的一些常用的方法
[str hasPrefix:@"12"]; //以12开头 返回值Bool[str hasSuffix:@"txt"]; //是否以txt结尾 返回Bool//搜索字符串[str rangeOfString:@"345"]; //返回位置 返回NSRange如果找不到返回{NSNotFound,0}//从尾部搜索NSRange range = [str rangeOfStri原创 2013-07-27 16:39:45 · 966 阅读 · 0 评论 -
Objective-C之foundation中四种数组NSArray的排序方法
demo代码如下:数组排序有四种方法:1、基本排序方式:利用NSString中提供的compare方法进行排序,见demo的arraySort12、自定义compare在实体类中自定义compareStudent方法,实现排序逻辑3、利用block进行排序:sortedArrayUsingComparator4、高级排序方法利用排序描述器,自定义排序优先级B原创 2013-07-28 17:33:05 · 996 阅读 · 0 评论 -
NSMutableString可变字符串的几种用法
NSMutableString:可变字符串//预先分配10个字符的空间NSMutableString *str = [[NSMutableString alloc] initWithCapacity:10];//拼接一个字符串[str appendString@"abc"];//可以添加占位符[str appendFormat:@" age is %i and height原创 2013-07-28 15:23:35 · 1117 阅读 · 0 评论 -
NSArray使用方法,数组遍历的几种方法,迭代器的用法
NSArray:只允许装OC对象,并且不能装空值,空代表数组元素的结束//创建一个空数组NSArray *array = [NSArray array];//创建有一个元素的数组array = [NSArray arrayWithObject:@"123"];//创建有 多个元素的数组array = [NSArray arrayWIthObjects:@"a",@"b"原创 2013-07-28 15:22:55 · 2833 阅读 · 0 评论 -
Objective-C中的@class的用法
1、@class:声明是一个类当我们真正使用该类的时候,在使用import导入类2、如下代码会报错,因为import不能相互引用,这是只是用@class声明类可以#import "B.h"@interface A:NSObject@end#import "A.h"@interfact B:NSObject@end3、如果是继承某个类,就要导入类的头文件,如果原创 2013-07-25 20:56:19 · 1890 阅读 · 0 评论 -
Objective-C内存管理原则
以下两种方法都有内存泄露,不会调用dealloc方法来释放内存:[[Student alloc] init].age = 10;[Student new].age = 10内存管理原则:1、谁创建、谁释放(谁污染,谁治理)如果你通过了alloc、new或者copy创建了一个对象,那么你就必须调用release、autorelease方法来释放内存那个方法创建了对象,就有哪个原创 2013-07-25 19:50:38 · 969 阅读 · 0 评论 -
Objective-C之Foundation框架中的NSDictionary的用法以及它的遍历方法
常用与创建NSDictionary的方法:+ (id)dictionary;+ (id)dictionaryWithObjtct:(id)object forKey:(id )key; + (id)dictionaryWithObjectAndKeys:(id)firstObject,...+ (id)dictionaryWithDictionary:(NSDictionary *原创 2013-07-29 21:10:30 · 2360 阅读 · 0 评论 -
第一个Objective-C 程序
在win7上面安装了虚拟机,然后安装了MacOSX10.8,下载xcode4.6,进行学习iphone。由于我长时间从事Java开发,开始看完了《Objective-C基础教程》,模模糊糊不知道,感觉到OC的语法有些奇怪、啰嗦,但是真心想学习iphone开发。于是从网络上找各种资料学习,第一次看到了传智的一个视频,写了一个OC的一个demo,并且进行了代码的详细的解读,分享出来,希望能给和我类原创 2013-07-24 14:32:31 · 969 阅读 · 0 评论 -
Objective-C之Foundation框架的NSMutableDictionary
//创建一个空的字典NSMutableDictionary *dict = [NSMutableDictionary dictionary];Student *stu1 = [Student studentWithName:@"stu1"];Student *stu2 = [Student studentWithName:@"stu2"];//添加元素[dict setObje原创 2013-07-30 17:11:58 · 1142 阅读 · 0 评论 -
Objective-C之Foundation框架NSNumber、NSNull、NSValue、NSDate用法介绍
1、NSNumber:NSArray、NSDictionary不允许放基本数据类型NSNumber可以把基本数据类型包装成对象,这样就可以间接的把基本数据类型放入NSArray、NSDictionary中2、NSValue:NSNumber是NSValue的子类,但是NSNumber只包装数字类型,NSValue可以包装任何值,也可以用NSValue包装结构体后加入NSArray、原创 2013-07-31 10:13:36 · 1209 阅读 · 0 评论 -
Objective-C之Foundation框架的NSObject和反射机制的应用
NSObject常用的方法:所有的OC对象都有这些方法,见demo的代码反射:Class的反射通过类名的字符串形式实例化对象Class class = NSClassFromString(@"Student");Student *stu = [[class alloc] init];类名转换为字符串:Class class = [Student class];N原创 2013-07-31 11:33:16 · 1674 阅读 · 0 评论 -
Objective-C类成员变量的作用域、self的用法、私有方法
1、变量作用域:@public @protected@private例如可以写:@interface Student: NSObject{ @public int _age; int _no; @private int _name; float height;}@end当时通常不这样写,因为如果给成员变量加上@pu原创 2013-07-24 20:45:51 · 1540 阅读 · 0 评论 -
Objective-C之语法copy、mutablecopy以及自定义复制功能
copy设计的目的:改变副本的时候,不会影响到原来的对象1、一个对象使用copy或者mutableCopy方法可以创建对象的副本2、copy需要先实现NSCopying协议,创建的是不可改变副本(NSString、NSArray、NSDictionary)mutableCopy 需要先创建NSMutableCopying协议,创建的是可变副本(如NSMutableString、NSMu原创 2013-07-31 19:06:53 · 1590 阅读 · 0 评论 -
IOS之第一个IOS程序
之前一直做J2EE开发,没有第一次接触Objective-C,对其语法觉得很奇怪,经过了一个礼拜的学习,终于学完了Objective-C语法,开始了IOS的开发,看传智的OC基础的视频,写完的demo以及IOS程序运行的原理分析简单做笔记如下:1、每一个应用程序都有一个属于自己的界面UIWindow,UIWindow继承自UIViewUIView:视图,屏幕上所有看得见,摸得着的都是一个U原创 2013-07-31 20:11:59 · 1138 阅读 · 0 评论 -
Objective-C中的点语法和自定义构造方法
在Objective-C中点的意义与Java中的大不相同OC中//接口@interface Person{ int _age ;}-(int) age;-(void) setAge:(int)age;在main方法调用这个对象的时候:Person * person = [[Person alloc] init];person.age = 10;原创 2013-07-24 19:41:21 · 995 阅读 · 0 评论 -
@property、@synthesize关键字的用法
由于OC中每次给属性声明get、set方法以及在实现类中要实现这些get、set方法,非常麻烦,所以OC给我们提供了@property、@synthesize关键字@property:在interface接口中声明get、set方法。@synthesize:在实现类.m文件中帮我们生成get、set方法的实现。.h文件中@property age;在.m文件中@synthe原创 2013-07-24 21:22:25 · 885 阅读 · 0 评论 -
Objective-C内存管理的原理
内存管理:范围:任何继承NSObject的对象,对基本数据类型无效。原理:1、每个对象内部都保存了一个与之相关联的整数,称为计数器2、每当使用alloc、new、copy创建一个对象的时候,对象的引用计数器被设置为1。3、给对象发送一条retain消息,可以使用引用计数器值+1。4、给对象发送一条release消息,可以是引用计数器-15、当一个对象的引用计数器值为0时原创 2013-07-25 14:20:38 · 835 阅读 · 0 评论 -
Objective-C方法注释的用法
OC中方法的注释:通过在方法上面:“#pragma mark 注释内容”方法分组的注释:“pragma mark - 注释内容” ,这种方式可以通过点击菜单来中的选项查看方法,并且通过如图的方式进行分组。原创 2013-07-25 17:07:32 · 1647 阅读 · 0 评论 -
Objective-C中的protocol用法
#import @protocol Study;@protocol Learn;@interface Student : NSObject@end#import "Student.h"#import "Study.h"#import "Learn.h"@implementation Student- (void) test{}@end#imp原创 2013-07-26 18:08:46 · 1118 阅读 · 0 评论