你觉得简单的区分网络环境的图片加载 | Lemtter 

作者:JerryXia | 发表于 , 阅读 (0)
对于一个图片较多的应用来说,产品可能会提出根据网络环境下载不同大小图片的需求,比如在WiFI环境时下载高清图,在WLAN时下载一般图片。这对这个需求一般程序员都会觉得这不是很简单的事件吗?直接获取当前网络环境然后下载并设置图片,于是三下五除二的写出了以下代码。1234567891011- setItem:(CustomItem *)item{    _item = item;    UIImage *placeholder = [UIImage imageNamed:@"placeholderImage"];    AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];    if (mgr.isReachableViaWiFi) { // 在使用Wifi, 下载原图        [self.imageView sd_setImageWithURL:[NSURL URLWithString:item.originalImage] placeholderImage:placeho...阅读全文

 React Native的开发环境配置 | Lemtter 

作者:JerryXia | 发表于 , 阅读 (0)
一、环境需求1.1  安装HomebrewHomebrew是OS X的套件(包)管理器,我们可以通过它获取并且安装很多组件安装方式:
1/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"##1.2  安装npm 和 Node.jsNode.js最好安装4.0及其以上更高版本,node安装成功后npm自动也就有了,直接下载安装Node.jshttps://nodejs.org/en/download/
1.3  安装WatchMan该插件用于监控bug文件和文件变化 ,并且可以触发指定的操作安装方式1brew install watchman
验证是否安装成功
1.3  安装Flowflow是一个 JavaScript 的静态类型检查器,建议安装它,以方便找出代码中可能存在的类型错误安装方式1brew install flow
验证是否安装成功
(注意:如果提示command not found,请加上sudo获得最高权限)
二、...阅读全文

[c++]常见的几个排序算法 - 蘭陵N散記

作者:JerryXia | 发表于 , 阅读 (0)
前一段时间需要任职资格考试,于是又拿起丢了几年的数据结构书看了看,温习了一下常见的几个排序算法。今天特把我写的学习代码贴了出来。排序的算法常见有插入排序,选择排序与交换排序,较复杂一点还有归并排序与基数排序,概念性的东西我就不多说了,大家可以找一本严老师数据结构书看看。读大学时不觉得怎么样,现在再来看看,又结合这几年的编程经验,通过C++风格函数子造了一遍轮子。
排序算法先来一个排序中的比较函数子,实现是左值小于右值。template<typename T>struct CmpFuctor{bool operator()(const T& lhs, const T& rhs){return lhs < rhs;}};交换排序中用到的交换两个元素的函数。template<typename T>void swap(T* lhs, T* rhs){T tmp = *lhs;*lhs = *rhs;*rhs = tmp;}排序前后,我们自然要观察前后元素的顺序,那也少了下面这个函数。即遍历整个数组,再回调函数指针func,把元素通过引用传递出来。template<typename T>voi...阅读全文

[c++]自己实现的stack - 蘭陵N散記

作者:JerryXia | 发表于 , 阅读 (0)
还是前一段时间需要任职资格考试,自己练习一下栈stack的简易实现,今天把它贴出来,暴露的接口与STL类似,没有实现iterator迭代器。实现有两种方式, 基于顺序存储与链式存储。栈的特点是“后进先出”,在数学表达式运算,编译语法分析中,程序函数调用时最为常见。
公用的宏与异常类:
#define NEW(var, T) do { /try {                 /var = new T;      /}catch(...) {         /var = NULL;       /}                     /}while(0)#define DELETE(var) do { /if(NULL != var)      /{                    /delete var;       /var = NULL;       /}                    /}while(0)template<typename T>struct Error{Error(const char* pszInfo = "Overflow"){p...阅读全文