YoferZhang 的博客

数学出身,功底扎实,热爱编程,虽然编程起步晚,但是冲劲十足。


  • 索引 | Index

  • 关于 | About

  • 标签 | tags

  • 分类 | categories

  • 归档 | Archives

【iOS】集合间相互转换,浅谈相关内存管理,使用NSData处理数据,使用NSDate

发表于 2016-08-14 | 更新于 2018-06-06 | 分类于 iOS |

版权声明:本文为博主原创,如需转载请注明出处。

NSArray 转换成 NSMutableArray

1
2
3
NSArray * array = @[@"one",@"two",@"three"];
NSMutableArray * muArray = [NSMutableArray arrayWithArray:array];
NSLog(@"muarray %@",muArray);

NSDictonary 转换成 NSMutableDictionary

1
2
3
NSDictionary * dic = @{@"one":@"1",@"two":@"2"};
NSMutableDictionary * muDic = [NSMutableDictionary dictionaryWithDictionary:dic];
NSLog(@"mudic %@ ",muDic);
阅读全文 »

【iOS】NSSet 集合创建,获取,遍历,可变集合的删除

发表于 2016-08-14 | 更新于 2018-06-06 | 分类于 iOS |

版权声明:本文为博主原创,如需转载请注明出处。

NSSet 集合

  • NSArray 自然顺序
  • NSSet是无序的
  • 注意:这个是最为重要的功能 NSSet 中不能够存储重复的数据,可以用它来去除重复的值
阅读全文 »

【iOS】NSDictionary字典创建,获取,遍历,可变字典的删除

发表于 2016-08-14 | 更新于 2018-06-06 | 分类于 iOS |

版权声明:本文为博主原创,如需转载请注明出处。

字典是以键值对的形式来存储数据 key value

1 NSDictionary 字典

1.1 创建字典,不可变的

1
2
NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:@"xiaozhe",@"name", nil];
NSLog(@"dic %@",dic);
1
2
3
2016-08-14 14:44:17.460 07-字典类[2325:547877] dic {
name = xiaozhe;
}
阅读全文 »

【iOS】NSArray/NSMutableArray创建,获取,遍历,排序

发表于 2016-08-14 | 更新于 2018-06-06 | 分类于 iOS |

版权声明:本文为博主原创,如需转载请注明出处。

1 数组基本

1.1 创建数组

NSArray 是不可变数组,一旦创建完成就不能够对数组进行,添加,删除等操作

下面这种方式相当于什么都没做

1
2
3
NSArray * array = [[NSArray alloc] init];

NSLog(@"%@",array);
阅读全文 »

【iOS】NSString的获取,判断,转换,重组,文件读写

发表于 2016-08-13 | 更新于 2018-06-06 | 分类于 iOS |

版权声明:本文为博主原创,如需转载请注明出处。

1 NSString 类

  • Foundation框架,苹果公司提供给我们的工具箱
  • 许多的类,(属性,方法)
  • 闭源
  • Foundation中的所有的类文件都是以NS开头,方便统一使用
  • NSObject(基类),NSString
阅读全文 »

【iOS】结构体

发表于 2016-08-13 | 更新于 2018-06-06 | 分类于 iOS |

版权声明:本文为博主原创,如需转载请注明出处。

结构体

NSRange(location length)

1
2
3
4
typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;
1
2
3
NSRange r1 = {2, 4}; // 不用
NSRange r2 = {.location = 2, .length = 4};// 不用
NSRange r3 = NSMakeRange(2, 4); // 掌握
1
2
3
4
5
6
NSString *str = @"i love oc";

// 查找某个字符串在str中的范围
// 如果找不到,length=0,location=NSNotFound==-1
NSRange range = [str rangeOfString:@"java"];
NSLog(@"loc = %ld, length=%ld", range.location, range.length);
阅读全文 »

【iOS】@property 和 @synthesize 总结

发表于 2016-08-13 | 更新于 2018-06-06 | 分类于 iOS |

版权声明:本文为博主原创,如需转载请注明出处。

@property

  • 用在 @interface 中
  • 用来自动生成 setter 和 getter 的声明
  • 用 @property int age; 就可以代替下面的两行
1
2
- (int)age; // getter
- (void)setAge:(int)age; // setter
阅读全文 »

【iOS】description 方法 和 SEL

发表于 2016-08-13 | 更新于 2018-06-06 | 分类于 iOS |

版权声明:本文为博主原创,如需转载请注明出处。

description

-description 方法

使用 NSLog 和 %@ 输出某个对象时,会调用对象的 -description 方法,并拿到返回值进行输出

+description 方法

使用 NSLog 和 %@ 输出某个对象时,会调用类对象 +description 方法,并拿到返回值进行输出

1
2
3
Class c = [Person class];

NSLog(@"%@", c);
  1. 会调用类的 +description 方法
  2. 拿到 +description 方法的返回值(NSString *)显示到屏幕上
  3. +description 方法默认返回的是“类名”
阅读全文 »

【iOS】Class 类的本质

发表于 2016-08-13 | 更新于 2018-06-06 |

版权声明:本文为博主原创,如需转载请注明出处。

1 类也是个对象

  • 其实类也是一个对象,是 Class 类型的对象,简称 “类对象”
  • Class 类型的定义
1
2
3
4
5
6
7
8
9
10
11
12
#if !OBJC_TYPES_DEFINED
/// An opaque type that represents an Objective-C class.
typedef struct objc_class *Class;

/// Represents an instance of a class.
struct objc_object {
Class isa OBJC_ISA_AVAILABILITY;
};

/// A pointer to an instance of a class.
typedef struct objc_object *id;
#endif
阅读全文 »

【iOS】Category 分类、类别 总结

发表于 2016-08-13 | 更新于 2018-06-06 | 分类于 iOS |

分类作用

分类:可以给某一个类扩充一些方法(不修改原来类的代码)

格式

1
2
3
4
5
6
7
8
9
// 声明
@interface Person (分类名称)

@end

// 实现
@implementation Person (分类名称)

@end

好处

  • 一个庞大的类可以分模块开发
  • 一个庞大的类可以由多个人来编写,更有利于团队合作
阅读全文 »

【iOS】Protocol 协议总结

发表于 2016-08-13 | 更新于 2018-06-06 | 分类于 iOS |

版权声明:本文为博主原创,如需转载请注明出处。

简单使用

1 基本用途

  • 可以用来声明一大堆方法(不能声明成员变量)
  • 只要某个类遵守了这个协议,就相当于拥有了这个协议中的所有方法声明
  • 只要父类遵守了某个协议,就相当于子类也遵守了

2 格式

  • 协议的编写
1
2
3
@protocol 协议名称 <NSObject>
// 方法声明列表....
@end
阅读全文 »

【iOS】Block编程总结

发表于 2016-08-12 | 更新于 2018-06-05 | 分类于 iOS |

版权声明:本文为博主原创,如需转载请注明出处。

没有返回值、没有形参的block

block 用来保存一段代码

block的标志:^

block跟函数很像:

  1. 可以保存代码
  2. 有返回值
  3. 有形参
  4. 调用方式一样
阅读全文 »

【iOS】Automatic Reference Counting (ARC) 总结

发表于 2016-08-12 | 更新于 2018-06-05 | 分类于 iOS |

版权声明:本文为博主原创,如需转载请注明出处。

ARC的判断准则:只要没有强指针指向对象,就会释放对象

ARC特点

  • 不允许调用 release、 retain、 retainCount。
  • 允许重写dealloc,但是不允许调用[super dealloc]。
  • @property的参数

strong :成员变量是强指针(适用于OC对象类型)
weak :成员变量是弱指针(适用于OC对象类型)

  • 以前的retain改为用strong

指针分2钟:

  • 强指针:默认情况下,所有的指针都是强指针 __strong
  • 弱指针:__weak
阅读全文 »

【iOS】Objective-C内存管理

发表于 2016-08-11 | 更新于 2018-06-05 | 分类于 iOS |

版权声明:本文为博主原创,如需转载请注明出处。

新博客文章地址:Objective-C内存管理
CSDN文章地址:Objective-C内存管理

![](http://ww4.sinaimg.cn/large/a9c4d5f6gw1f6pt6mxxf6j212p0mugpd.jpg)

1 基本原理

1.1 什么是内存管理

  • 移动设备的内存极其有限,每个 app 所能占用的内存是有限制的
  • 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间。比如回收一些不需要使用的对象、变量等。
  • 管理范围:任何继承了 NSObject 的对象,对其他基本数据类型(如int, char, float, double, struct, enum 等)无效
阅读全文 »

【iOS】Advanced Memory Management Programming Guide 高级内存管理编程指南(官方文档翻译)

发表于 2016-08-11 | 更新于 2018-06-06 | 分类于 iOS |

Advanced Memory Management Programming Guide - 高级内存管理编程指南(官方文档翻译)

版权声明:本文为博主原创翻译,如需转载请注明出处。

新博客文章地址:Advanced Memory Management Programming Guide 高级内存管理编程指南(官方文档翻译)
CSDN文章地址:Advanced Memory Management Programming Guide 高级内存管理编程指南(官方文档翻译)

苹果源文档地址 - 点击这里

About Memory Management - 关于内存管理

Application memory management is the process of allocating memory during your program’s runtime, using it, and freeing it when you are done with it. A well-written program uses as little memory as possible. In Objective-C, it can also be seen as a way of distributing ownership of limited memory resources among many pieces of data and code. When you have finished working through this guide, you will have the knowledge you need to manage your application’s memory by explicitly managing the life cycle of objects and freeing them when they are no longer needed.

应用程序的内存管理是程序运行时内存分配的过程,使用它,并当你用完它的时候释放它。写得好的程序应该尽可能少的使用内存。在Objective-C,它也可以被看作是分布 数据和代码的许多块当中的有限的内存资源的所有权的方法。当您完成通过这一指南的工作,你将有一些关于你的应用程序的内存管理知识,你需要明确管理对象的生命周期,并且当他们不再需要管理时释放他们。

阅读全文 »
1…5678
Yofer Zhang

Yofer Zhang

接下来自己能够坚持写博客,记录是一个好习惯

113 日志
7 分类
127 标签
RSS
GitHub E-Mail Google StackOverflow Instagram
Links
  • WeChat
  • LinkedIn
© 2019 Yofer Zhang
由 Hexo 强力驱动 v3.2.0
|
主题 – NexT.Pisces v6.4.0