推送通知是当程序没有启动或不在前台运行时,告诉用户有新消息的一种途径。
有远程推送和本地推送之分。
more
本地推送
本地推送就是由应用程序发起的推送通知,不经过服务器。
应用场景
一般用于不需要网络的提醒类情况
事件提醒类:到了我们自定义的时间,就会弹出一些信息告诉我们该干什么了,例如闹钟
游戏类:每日任务提醒,一到八点双倍经验时刻开启,就准时提醒用户登陆
书籍类:你有多少天没有看书了,需要学习哦
健康类:亲~你好多天没吃药了,不要放弃治疗
恶搞类:在你分手女朋友手机里安装一个软件,3个月后,自动开启xxx约你开房
硬件类:蓝牙连接,当程序在后台时候与蓝牙断开,需要有一个提示告诉用户蓝牙连接断开
记账类软件,会提醒我
继续阅读 »
目录结构
一个合理的目录结构首先应该是清晰的,让人一眼看上去就能大概了解目录的职责,且容易应对新的变化。
常规的两种结构:
主目录按照业务分类,内目录按照模块分类(主目录按照MVC架构分类,内部根据项目模块分类)
优点:相对比较快定位对应的业务。
缺点:模块相关类太过分散,需要来回切换寻找文件,不方便开发。
├── Application
├── Categories
├── Controllers
│ ├── Blog
│ ├── Comment
│ ├── Login
│ ├── News
| ...
├── Models
│
继续阅读 »
开发社区
iOS 开源代码库 http://www.code4app.com/
苹果开发中文社区 http://www.cocoachina.com/
Github https://github.com
ObjC 中国 http://objccn.io/
歪果仁教程:Ray Wenderlich | Tutorials for iPhone / iOS Developers and Gamers http://www.raywenderlich.com/
开发者头条,各类技术干货 http://toutiao.io
开源项目
YY作者常用第三方库整理 http://github.ibireme.com/github/list/i
继续阅读 »
概念
国际化是指为应用程序提供一个用来支持不同语言的框架的过程,在代码设计上加入能方便的移植到其他国家和地区的特性。I18n是Internationalization的简写。
本地化是使你的应用程序支持特定地区的过程,将具有国际化支持的代码翻译成本国或地区的语言,是本地用户更容易使用。l10n是Localization的简写。
支持多语言,在英语语言环境设置显示相应的英文,在汉语环境下设置显示相应的中文。
more
1. 在工程菜单info选项卡下的localizations中添加新语言
2. 创建 strings 文件
新建文件
如果要对APP的设置(比如:应用程序包的显示名称)进行本地化,需要对I
继续阅读 »
PS:本文所有$符号之后为在终端中执行的命令。
版本控制系统
版本控制
版本控制(Version Control)的作用是追踪文件的变化。为什么需要版本控制?简单说,就是当你出错了,可以很容易地回到没出错时的状态。
你可能已经在不知不觉中,布置了自己的版本控制系统。比如,创建了类似下面这样的文件名:
论文_0510.doc
论文_0514.doc
论文_0521.doc
论文_修改版.doc
论文_最终不修改版.doc
这就是软件中为什么有"Save As"命令的原因。它使得你可以在不破坏源文件的基础上,得到一个类似的新文件。文件的多版本保存是一个常见问题,通常的解决办法是这样的:
做一个文件备份(比如Document.
继续阅读 »
树莓派基本配置
树莓派设备安装RASPBIAN系统
使用raspi-config进行配置
参考http://blog.csdn.net/xdw1985829/article/details/38816375
更新系统到最新sudo apt-get update & sudo apt-get upgrade
安装JRE环境
sudo apt-get install openjdk-7-jre
安装MySQL
sudo apt-get install mysql-server
安装PHPMyAdmin
sudo apt-get install phpmyadmin
安装Openfire服务
下载:wg
继续阅读 »
Mac OS 10.11 Openfire无法启动问题
安装好openfire_3_10_2.dmg后,无法通过【系统偏好设置】中的Openfire图标启动服务器。
1、JDK版本:1.8.65。经测试需要JDK 1.7版本以上。
2、Openfire版本:3.10.2
最终解决办法:在终端中执行命令
bash
sudo su
cd /usr/local/openfire/bin
export JAVA_HOME=`/usr/libexec/java_home`
sh ./openfire.sh
卸载Openfire
只需要在openfire关闭的情况下,执行以下的命令即可:
bash
sudo rm
继续阅读 »
在QtWebkit的QWebView加载网页的时候,会随着每加载一次网页内存就会增加。为解决这个问题可以通过以下代码解决。
c++
QWebSettings::globalSettings()->setAttribute(QWebSettings::AutoLoadImages, false);
QWebSettings::globalSettings()->setMaximumPagesInCache(0);
QWebSettings::globalSettings()->setObjectCacheCapacities(0, 0, 0);
QWebSettings::globalSettings()->setOfflineS
继续阅读 »
Qt读取MS Word/Excel/Powerpoint等主要通过ActiveQt来实现。实际上是调用MS Word的ActiveX APIs。
一下代码是读取word中的所有的文本。
c++
QAxObject wordApplication("Word.Application");
QAxObject *documents = wordApplication.querySubObject("Documents");
QAxObject* document = documents->querySubObject("Open(const QString&, bool)", m_strWordFilePath, true);
QA
继续阅读 »
解决办法
```c++
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
if (QT_VERSION <= QT_VERSION_CHECK(5, 0, 0))
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
QTextCodec::setCodecForTr(codec);
endif
```
乱码出现的原因
QString内部采用的是 Unic
继续阅读 »