iOS判断是否允许远程推送

iOS8.0之前使用enabledRemoteNotificationTypes进行判断,iOS8.0之后可以通过currentUserNotificationSettings.types或者isRegisteredForRemoteNotifications判断。
其中types是一个枚举UIRemoteNotificationType
typedef enum {
UIRemoteNotificationTypeNone = 0,
UIRemoteNotificationTypeBadge = 1 << 0,
UIRemoteNotificationTypeSound = 1 << 1,
UIRemoteNotificationTypeAlert = 1 << 2,
UIRemoteNotificationTypeNewsstandContentAvailability = 1 << 3,
} UIRemoteNotificationType;
粗略的认为如果types为UIRemoteNotificationTypeNone,表示远程推送未开启,其他值表示已开启。

举个栗子🌰

1
2
3
4
5
6
7
8
9
10
11
12
13
if ([UIDevice currentDevice].systemVersion.floatValue &gt;= 8.0) {
    if ([UIApplication sharedApplication].currentUserNotificationSettings.types == UIRemoteNotificationTypeNone) {
        NSLog(@"远程推送未开启");
    }else {
        NSLog(@"远程推送已开启");
    }
}else{
    if ([UIApplication sharedApplication].enabledRemoteNotificationTypes == UIRemoteNotificationTypeNone) {
        NSLog(@"远程推送未开启");
    }else {
        NSLog(@"远程推送已开启");
    }
}

Read More

一页尽知Git, GitCheat Sheet

上个月参加2015开源技术大会时发放的资料里有一份CODE@CSDN的介绍,背面是一些常用的Git命令,对于刚接触git的同学还是挺有用的。

icon_star4 Git工作流

一般情况下,master是默认开发分支,origin是默认上游代码仓。

image_git_process

icon_star4 请牢记

获取帮助的方式!

git <命令> --help

icon_star4 配置

全局配置参数保存在~/.gitconfig

git config --global user.name "Your Name"
git config --global user.email "Your Email"

添加SSH公钥到Git服务站

ssh -keygen -t rsa -C "Your Email"
cat ~/.ssh/id_rsa.pub

icon_star4 创建

创建新代码仓

# 创建一个名为GitTest的目录
mkdir GitTest
cd GitTest
git init
# 创建一个名为README的markdown文件,或者直接将已有项目拷贝到该目录
touch README.md
git add
git commit -m "first commit"
git remote add origin <远程仓库地址>

从已有的代码仓中下载

# 克隆在当前目录
git clone <远程仓库地址>
git clone <远程仓库地址> <指定目录>

icon_star4 分支

切换分支

git checkout <BRANCH>

将分支1合并到分支2

git checkout <BRANCH2>
git merge <BRANCH1>

基于当前工作头指针HEAD创建分支

git branch <BRANCH>

基于OTHER创建分支BRANCH并切换到该分支

git checkout -b <BRANCH> <OTHER>

删除分支

git branch -d <BRANCH>

icon_star4 更新

从origin获取新的改动

# 不合并改动
git fetch

从origin拉取最后一次改动

# 获取改动并合并
git pull

接受别人推送来的patch

 # 若有冲突,解决冲突并执行 
git am -3 patch.mbox git am --resolved

icon_star4 发布/提交

提交所有本地改动

git commit -a 

将当前改动生成patch

git format -patch origin 

将改动推送到

origin git push 

制作发行版本或里程碑

git tag v1.0

icon_star4 解决冲突

查看合并冲突 git diff 基于文件查看冲突

git diff --base <FILE>

基于文件查看合并改动产生的冲突

git diff --ours <FILE>

查看别人文件的合并冲突

git diff --theirs <FILE>

放弃一次冲突

git reset --hard
git rebase --skip

解决冲突后合并

git add <COFLICT FILE>
git rebase -- continue

icon_star4 反转 提交

放弃最后一次提交

# 注意:此操作不可恢复
git reset --hard

反转最后一次提交

# 注意:此操作会产生新的提交
git revert HEAD

反转特定的提交

# 注意:此操作会产生新的提交
git revert <ID>

修复最后一次提交

# 编辑受损文件后执行
git commit -a --amend

检出特定文件的特定提交

git checkout <ID> <FILE>

icon_star4 查看

查看工作目录下的文件改动状态

git status

查看所有文件改动

git diff

查看两次提交<ID1>和<ID2>之间的差异

git diff <ID1> <ID2>

查看改动记录

git log

查看文件的改动历史

git log -p <FILE> <DIRECTORY>

查看文件的改动者

git blame <FILE>

查看某次提交

git show <ID>

查看特定文件的特定提交

git show <ID>:<FILE>

查看全部本地分支

# 有星号(*)的是当前工作分支
git branch

Read More

【iOS】隐藏Launch启动界面的状态栏

通常app在启动时会显示一张展示图片,如果状态栏样式和背景图不和谐,会显得很难看,所以要在启动界面隐藏状态栏。

步骤:
1、 设置项目info中的Custom iOS Target Properties,在 plist中添加Status bar is initially hidden = YES
QQ20150412-1@2x
2、在AppDelegate.m中的三个函数中设置状态栏显示,插入代码[[UIApplication sharedApplication] setStatusBarHidden:NO]。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- (void)applicationWillEnterForeground:(UIApplication *)application
- (void)applicationDidBecomeActive:(UIApplication *)application

Read More