Monthly Archives: March 2015

巧妙利用日期格式计算出本周所有日期

1、先解释一下,如题意思为如果今天是星期三,那么我想返回从星期一到星期天的所有日期
2、设计思路:
2.1、通过日期格式得到今天为星期几,将这个“星期几”转换成数字1~7
2.2、通过从0~7循环分别用1-7减去上述数字得到本周每天距离今天的天数差,如今天星期三,那么星期一距离今天-2天,星期二距离今天-1天,星期五距离今天2天
2.3、将天数换算成秒,通过NSDATE的方法得出7天的日期对象,再转换成字符串,搞定!
3、写成NSDATE的分类,直接使用。

代码示例:
NSDate+SA.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//
//? NSDate+SA.h
//? 
//
//? Created by yusian on 15-3-19.
//? Copyright (c) 2015年 Sian. All rights reserved.
//
?
#import <Foundation/Foundation.h>
?
@interface NSDate (SA)
?
// 根据日期获取星期,返回数字(1~7)
+ (NSInteger)weekDayWithDate:(NSDate *)date;
?
// 日期转换成字符串,格式如:2015-03-19 17:36:34
+ (NSString *)formateDate:(NSDate *)date;
?
// 本周日期字符串数组
+ (NSArray *)currentWeekDays;
?
@end

[……]

继续阅读

如何遍历对象的方法、属性及对应值

1
2
3
4
5
6
7
8
9
10
//
//? NSObject+SA.m
// 
//
//? Created by yusian on 15-3-16.
//? Copyright (c) 2015年 Sian. All rights reserved.
//
?
#import "NSObject+SA.h"
#import[......]<p class="read-more"><a href="https://www.yusian.com/blog/project/2015/03/16/121812372.html">继续阅读</a></p>

关于自定义NSLog需要注意的一点 (自定义SALog)

相信很多开发人员都会自定义NSLog的输入方式,一方面可以自定义自己的输出格式,有利于调试程序,比如说日志输出时打印程序所在的文件与行数;另一方面有利控制日志的输出,比如调试时输出日志,但发布后不输出。
示例:

1
2
3
4
5
6
// 自定义输出 SALog(...)
#ifdef DEBUG
#define SALog(...) NSLog(@"%s-%d行:%@", __PRETTY_FUNCTION__, __LINE__, [NSString stringWithFormat:__VA_ARGS__])
#else
#define SALog(...)
#endif

问题来了,很多人都知道#ifdef DEBUG的意义在于只有调试时才输出日志,发布时不输出日志,但很多人都只知道在调试时确实有日志输出,可发布呢?无人关心了。其实有个地方是需要设置的,Product–Scheme–Edit Scheme–Info中的Build Configuration,如下图所示:[……]

继续阅读

Snapshotting a view that has not been rendered results in an empty snapshot. …

错误代码:Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates.

问题分析:iOS8在调用系统相机拍照时,会有一两秒的停顿,然后再弹出UIImagePickConroller,IOS7是没有这个问题的,在百度找了无数遍都没能解决这个问题,有说要将imagePickController设置为全局变量,有说要延时0.5秒再presentViewController的,各显神通,但很遗憾的都没能解决这个问题,今天特意单独写个Demo来研究此问题,终于取得了突破性的进展!

其实根本原因不在于系统拍照控制器上面,而是执行presentViewController这个动作本身!我们可以查看下UIViewController这个类,他有一个属性

1
@property(nonatomic,assign) UIModalPresentationStyle modalPresentationStyle NS_AVAILABLE_IOS(3_2);

[……]

继续阅读

如何判断当前App是否允许使用系统定位功能

如题解答:利用CLLocationManager的一个类方法

1
2
3
4
+ (CLAuthorizationStatus)authorizationStatus
// CLAuthorizationStatus是一个枚举值:
typedef enum {
    kCLAuthorizationStatusN[......]<p class="read-more"><a href="https://www.yusian.com/blog/project/2015/03/09/113353383.html">继续阅读</a></p>