Light's Blog

The best or nothing.

iOS知识小集-170306

| Comments

异步回调

  1. 明确知道操作执行完成;
  2. 操作时间未知;

Block

  1. 对block中的内容强引用;
  2. 循环引用,类A的强property类B的强property block强引用self;
  3. 单例不用管循环引用;

内存划分

  1. 全局区;
  2. 静态区;
  3. 堆区;
  4. 栈区;

单例

  1. 如何创建单例?
  2. 何时创建单例?
  3. 单例的特性?

NSOperation

1
2
3
4
5
6
7
8
9
-(void)start;
-(void)main;
-(void)cancel;
-(void)addDependency:(NSOperation*)op;
-(void)removeDependency:(NSOperation*)op;
@property BOOL executing;
@property BOOL cancelled;
@property BOOL finished;
@property copy void (^completionBlock)(void);

使用方法:
1、继承NSOperation,通过init方法初始化,重写main方法执行任务;
2、可以通过completionBlock设置执行完成回调;
3、可以方便的判断任务执行状态,取消任务等;
4、可以添加和删除依赖关系,依赖其他operation的执行;
5、可以通过NSCondition阻塞,加锁,生产者-消费者;

NSOperationQueue

1
2
3
4
5
@property NSInteger maxCoucurrentOperationCount;
@property NSInteger operationCount;
-(void)addOperation:(NSOperation*)op;
-(void)cancelAllOperations;
-(void)waitUntilAllOperationsAreFinished;

使用方法:
1、初始化NSOperationQueue,设置同时可并行任务数量;
2、创建任务,并将其加入队列中,任务自动开始执行;
3、可以通过operationCount判断还有多少任务未执行;

HealthKit

功能:存放健康数据,自动合并;
读:读某一类别健康数据;
写:写某一类别健康数据;
改:改自己写的健康数据。
锁屏时无法读数据,保护用户数据安全。

UIPasteboard

将信息写到剪切板中。

1
2
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
[pasteboard setString:string];

发送本地通知

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 创建一个本地推送
UILocalNotification *notification = [UILocalNotification new];
if (notification != nil) {
  // 推送声音
  notification.soundName = UILocalNotificationDefaultSoundName;
  // 推送内容
  notification.alertBody = NSLocalizedString(@"stopWatch.timing", @"已将打点计时信息复制到剪切板");
  // 显示在icon上的红色圈中的数子
  notification.applicationIconBadgeNumber++;
  // 设置userinfo 方便在之后需要撤销的时候使用
  NSDictionary *info = [NSDictionary dictionaryWithObject:kStopWatchKey forKey:kNotificationKey];
  notification.userInfo = info;
  // 添加推送到UIApplication
  UIApplication *app = [UIApplication sharedApplication];
  [app scheduleLocalNotification:notification];
}

string label

1
2
NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
ceil()

相册和相机

取消选择照片和选择没有照片是不同的回调。
相片可以编辑,相机不可以编辑。

类方法、类变量、单例

埋点

点击量;
人次;
存留;
停留时间;

Comments