NSArray 类定义的方法

1.  makeObjectsPerformSelector:@select(aMethod)

让数组中的每个元素 都调用 aMethod

2. makeObjectsPerformSelector:@select(aMethod) withObject:oneObject

让数组中的每个元素 都调用 aMethod  并把 withObject 后边的 oneObject 对象做为参数传给方法aMethod

cocoa当中的函数调用
使用methodForSelector:来避免动态绑定将减少大部分消息的开销,但是这只有在指定的消息被重复发送很多次时才有意义,例如上面的for循环。
注意,methodForSelector:是Cocoa运行时系统的提供的功能,而不是Objective-C语言本身的功能。

几个重要的辅助函数,可以在使用过程中起到很好的辅助作用,尤其是在动态编译等起到了比较大的作用。
我们可以通过NSObject的一些方法获取运行时信息或动态执行一些消息:
 class   返回对象的类;
 isKindOfClass 和 isMemberOfClass检查对象是否在指定的类继承体系中;
 respondsToSelector 检查对象能否相应指定的消息;
 conformsToProtocol 检查对象是否实现了指定协议类的方法;
 methodForSelector  返回指定方法实现的地址。
 performSelector:withObject 执行SEL 所指代的方法。

分割线-----------------

A和B都是view的子视图。
A放置在B前面。现在点击了A。B响应了点击事件,这是为什么
把imageview的userInteractionEnabled设置成yes就不穿透了。

IOS7.0以后关于nav和tabbar的一些设置
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
    {
        self.automaticallyAdjustsScrollViewInsets = NO;
        
        self.edgesForExtendedLayout = UIRectEdgeNone;
        self.extendedLayoutIncludesOpaqueBars = NO;
        self.modalPresentationCapturesStatusBarAppearance = NO;
        
        self.navigationController.navigationBar.barTintColor =[UIColor grayColor];
        self.tabBarController.tabBar.barTintColor =[UIColor grayColor];
    }

9⃣️切片    一般用于图片不够大需要拉伸的时候 横竖都可以切,讲一下横向:三条线,分成两个区域,亮色,灰色。这两个区域都代表可以拉伸,注意线的外部不拉伸。亮色区域代表无限重复拉伸,灰色区域代表不重复拉伸。

/*
    tableviewcell的重用问题:由于一直在百度上拿代码,很少去记。现在忽然发现百度搜索没有那么好用了,搜一个cell重用,搜了几十个网页都没找到正确答案。心碎了,于是在这里记一下

1. dequeueReusableCell这个代表重用  所有的重用都会造成一定的问题

[self.tableView registerClass:[CustomCell class] forCellReuseIdentifier:@"CustomCell"];

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];

注意:这个地方使用_forIndexPath的前提是使用了register方法,配套使用。

2. 第二种重用需要XIB设置cellmark        如果直接使用重用会造成页面重叠问题
    static NSString *cellMark = @"cell";
    PHTableViewCell *VCell = [tableView dequeueReusableCellWithIdentifier:cellMark];
    if (VCell == nil) {
    VCell = [[NSBundle mainBundle] loadNibNamed:@"PHTableViewCell" owner:nil options:nil].lastObject;
    }
 
 3. 不要使用模拟器去测试,会出现各种问题
 */

分割线-----------------

自定义导航栏
  //1.背景色
    [[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x067AB5)];
    //2.设置背景图
    //[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"NavigationBarDefault"] forBarMetrics:UIBarMetricsDefault];
    //[[UINavigationBar appearance]setBackgroundImage:[UIImage imageNamed:@"NavigationBarLandscapePhone"] forBarMetrics:UIBarMetricsLandscapePhone];
    //3.设置按钮上文字的颜色
    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
    //4.设置有导航栏时,状态栏的颜色风格
    [[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];
    //5.设置导航栏返回按钮的箭头样式
    [[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:@"back_btn"]];
    [[UINavigationBar appearance]setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"back_btn"]];
    //6.设置导航栏标题的字体样式
    NSShadow *shadow = [[NSShadow alloc]init];
    shadow.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8];
    shadow.shadowOffset = CGSizeMake(2, 2);
    NSDictionary *textAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],NSForegroundColorAttributeName,shadow,NSShadowAttributeName,[UIFont fontWithName:@"Helvetica" size:21.0],NSFontAttributeName,nil];
    [[UINavigationBar appearance]setTitleTextAttributes:textAttributes];

[UINavigationBar appearance]这种写法代表对所有此类型的控件生效

Animation

CAAnimation可分为四种:
* 1.CABasicAnimation
* 通过设定起始点,终点,时间,动画会沿着你这设定点进行移动。可以看做特殊的CAKeyFrameAnimation
* 2.CAKeyframeAnimation
* Keyframe顾名思义就是关键点的frame,你可以通过设定CALayer的始点、中间关键点、终点的frame,时间,动画会沿你设定的轨迹进行移动
* 3.CAAnimationGroup
* Group也就是组合的意思,就是把对这个Layer的所有动画都组合起来。PS:一个layer设定了很多动画,他们都会同时执行,如何按顺序执行我到时候再讲。
* 4.CATransition
* 这个就是苹果帮开发者封装好的一些动画

*   @param type                动画过渡类型
 *   @param subType             动画过渡方向(子类型)
 *   @param duration            动画持续时间
 *   @param timingFunction      动画定时函数属性
 *   @param theView             需要添加动画的view.

translationInView:A这个View相对于父View的rect
locationInView:我们在屏幕上面的手指相对于View的位置,手指移动,每次的值都是不一样的
velocityInView:速度,比如我们拖动一个View,这个值就是View相对父View拖动的速度,

UIViewAnimationOptionLayoutSubviews //提交动画的时候布局子控件,表示子控件将和父控件一同动画。
UIViewAnimationOptionAllowUserInteraction //动画时允许用户交流,比如触摸
UIViewAnimationOptionBeginFromCurrentState //从当前状态开始动画
UIViewAnimationOptionRepeat //动画无限重复
UIViewAnimationOptionAutoreverse //执行动画回路,前提是设置动画无限重复
UIViewAnimationOptionOverrideInheritedDuration //忽略外层动画嵌套的执行时间
UIViewAnimationOptionOverrideInheritedCurve //忽略外层动画嵌套的时间变化曲线
UIViewAnimationOptionAllowAnimatedContent //通过改变属性和重绘实现动画效果,如果key没有提交动画将使用快照
UIViewAnimationOptionShowHideTransitionViews //用显隐的方式替代添加移除图层的动画效果
UIViewAnimationOptionOverrideInheritedOptions //忽略嵌套继承的选项
//时间函数曲线相关
UIViewAnimationOptionCurveEaseInOut //时间曲线函数,由慢到快
UIViewAnimationOptionCurveEaseIn //时间曲线函数,由慢到特别快
UIViewAnimationOptionCurveEaseOut //时间曲线函数,由快到慢
UIViewAnimationOptionCurveLinear //时间曲线函数,匀速
//转场动画相关的
UIViewAnimationOptionTransitionNone //无转场动画
UIViewAnimationOptionTransitionFlipFromLeft //转场从左翻转
UIViewAnimationOptionTransitionFlipFromRight //转场从右翻转
UIViewAnimationOptionTransitionCurlUp //上卷转场
UIViewAnimationOptionTransitionCurlDown //下卷转场
UIViewAnimationOptionTransitionCrossDissolve //转场交叉消失
UIViewAnimationOptionTransitionFlipFromTop //转场从上翻转
UIViewAnimationOptionTransitionFlipFromBottom //转场从下翻转

关于最后一组转场动画它一般是用在这个方法中的:
    [UIView transitionFromView: toView: duration: options: completion:^(BOOL finished) {}];
 该方法效果是插入一面视图移除一面视图,期间可以使用一些转场动画效果。

iOS7中苹果在 UIView(UIViewAnimationWithBlocks) 加入了一个新的制作弹性动画的工厂方法
+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampingRatio initialSpringVelocity:(CGFloat)velocity options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion NS_AVAILABLE_IOS(7_0);

分割线-----------------

绘制路径
    /*
     
    1、CGPathCreateMutable 函数
    
    创建一个CGMutablePathRef 的可变路径,并返回其句柄。
    
    2、CGPathMoveToPoint 过程
    
    在路径上移动当前画笔的位置到一个点,这个点由CGPoint 类型的参数指定。
    
    3、CGPathAddLineToPoint 过程
    
    从当前的画笔位置向指定位置(同样由CGPoint类型的值指定)绘制线段
    
    4、CGContextAddPath 过程
    
    添加一个由句柄指定的路径的图形上下文,准备用于绘图
    
    5、CGContextDrawPath 过程
    
    在图形上下文中绘制给出的路径。
    
    6、CGPathRelease 过程
    
    释放为路径句柄分配的内存。
    
    7、CGPathAddRect 过程
    
    向路径添加一个矩形。矩形的边界由一个CGRect 结构体指定。

*创建一个新的可变路径(CGPathCreateMutable),把该路径加到你的图形上下文(CGContextAddPath)
     
     *并把它绘制到图形上下文中(CGContextDrawPath)
     
     */

分割线-----------------

MRC和ARC混编设置方式
在XCode中targets的build phases选项下Compile Sources下选择 不需要arc编译的文件
双击输入 -fno-objc-arc 即可
MRC工程中也可以使用ARC的类,方法如下:
在XCode中targets的build phases选项下Compile Sources下选择要使用arc编译的文件
双击输入 -fobjc-arc 即可

修改textFieldplaceholder字体颜色和大小
textField.placeholder = @"请输入用户名";  
[textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];  
[textField setValue:[UIFont boldSystemFontOfSize:16] forKeyPath:@"_placeholderLabel.font"];

UITableView设置Section间距
在使用UITableViewStyleGrouped类型的UITableView的时候,经常很奇怪的出现多余的section间距,那可能是因为你 只设置了footer或者header的间距中的其中一个,他们是成对出现那么另一个默认为20个高度,只需要设置返回0.001的CGFlot的浮点数就可以解决这个 多余的间距。

UIView的clipsTobounds属性
view2添加view1到中,如果view2大于view1,或者view2的坐标不全在view1的范围内,view2是盖着view1的,意思就是 超出的部份也会画出来,UIView有一个属性,clipsTobounds 默认情况下是NO。如果,我们想要view2把超出的那部份现实出来,就得改变它的父视图也就view1的clipsTobounds属性值。 view1.clipsTobounds = YES;
可以很好地解决覆盖的问题

other linker flags:
它的设置关乎到项目编译时的链接方式。
-ObjC:加了这个参数后,链接器就会把静态库中所有的Objective-C类和分类都加载到最后的可执行文件中
-all_load: 会让链接器把所有找到的目标文件都加载到可执行文件中,但是千万不要随便使用这个参数!假如你使用了不止一个静态库文件,然后又使用了这个参数,那么你很 有可能会遇到ld: duplicate symbol错误,因为不同的库文件里面可能会有相同的目标文件,所以建议在遇到-ObjC失效的情况下使用-force_load参数。
-force_load:所做的事情跟-all_load其实是一样的,但是-force_load需要指定要进行全部加载的库文件的路径,这样的话,你就只是完全加载了一个库文件,不影响其余库文件的按需加载

分割--------

类方法(+)不可以使用实例变量。类方法可以使用self
实例方法里面的self,是对象的首地址。

类方法里面的self,是Class

其实最主要的区别是类方法不需要声明一个对象(也可以叫做实例)  可以直接调用 ,但是实例方法必须声明对象

关于OC中属性其实正确调用应该是[class property]   为什么可以直接对象.呢。因为@property 自动实现了getter setter方法

http://www.2cto.com/kf/201412/361299.html

UIView的子类初始化的时候,不要进行任何的布局操作。布局操作应该在layoutSubviews里面做;需要重新布局的时候调用setNeedsLayout,而不要直接调用layoutSubviews。(初学者)

模拟器nav Push和pop转场动画变快变慢: 选中模拟器->Debug->slow  animation

640x960, 640x1136, 750x1334, 1242x2208
320x480,320x568,375x667,414x736

AsyncSocket  GCDAsyncSocket     知页简历  模板

做高德地图的时候,一定要注意方法顺序。尽可能不要重复方法
regionThatFits 地图自动适应。

sudo rm -rf 解决文件无法删除问题

一些好的知识网站:

JQuery
http://www.runoob.com/jquery/jquery-examples.html

推送相关
http://www.cnblogs.com/menglingzhi/p/5638018.html

Runtime
http://www.code4app.com/thread-9849-1-1.html
http://www.code4app.com/blog-721976-204.html  介绍

IOS个人博客资料
https://github.com/hawx1993/Front-end-Interview-questions/blob/master/README.md

IOS9 AppStore新应用提审
http://mp.weixin.qq.com/s?__biz=MjM5OTM0MzIwMQ==&mid=400430503&idx=4&sn=79df176720c8d4ee1dacf86357e15e04&scene=23&srcid=1029DzU01khEMM8PDoWXZNR3#wechat_redirect
迭代应用
https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/

goole访问网站
http://blog.sina.com.cn/s/blog_56265c9e0102vqw9.html

日期格式
http://blog.csdn.net/ouyangtianhan/article/details/45921389

时间相关方法
http://moto0421.iteye.com/blog/1586592
http://www.cnblogs.com/wayne23/archive/2013/03/25/2981009.html

推送
http://www.2cto.com/kf/201401/274532.html

博客
http://blog.csdn.net/shenjie12345678/article/category/2224111
http://blog.sina.com.cn/s/articlelist_2073912495_0_2.html

IOS 解决三方静态库冲突
http://www.cnblogs.com/rayshen/p/5160218.html

应用程序生命周期
http://www.2cto.com/kf/201210/159581.html

数组各项操作
http://blog.sina.com.cn/s/blog_702e40a80101gagf.html

JS与OC交互
http://www.cocoachina.com/ios/20160127/15105.html

简单特效效果
http://www.cnblogs.com/dsxniubility/

iOS学习路之Objective-C(二)—— 字符串
http://www.tuicool.com/articles/AJZBjqY

Block详解
http://my.oschina.net/leejan97/blog/268536

IOS解析
http://blog.csdn.net/banketree/article/details/39928441

高德地图获取经纬度
http://www.gpsspg.com/maps.htm

iOS8跳转到系统设置页
http://blog.csdn.net/showhilllee/article/details/44057403

27个IOS开源库
http://www.jianshu.com/p/228535226656

iOS 系统架构及常用框架
http://www.cnblogs.com/leo_wl/p/3629606.html
https://mp.weixin.qq.com/s?__biz=MzA3NzM0NzkxMQ==&mid=2655357820&idx=2&sn=b90298ca5d4f777ecfa9bfb60df3e76a&scene=0&key=f5c31ae61525f82e522bd261a07e1a07f66af5af15c95244f1b0f74943c8db5f0f9e5447e0ef2263888738dd35e2ab54&ascene=0&uin=MjkzMzQ5MTU%3D&devicetype=iMac14%2C4+OSX+OSX+10.11.1+build(15B42)&version=11020201&pass_ticket=5TDjeRDHQolMUHrcb0MOiVNIa%2FdnBP41%2FgIDaOJQ2FA%3D

IOS git资料
http://github.ibireme.com/github/list/ios

T-ARA皇冠资源总站
http://tarabar.lofter.com

IOS视频边下边播—缓存播放数据流
http://www.jianshu.com/p/990ee3db0563

真机调试、打包测试、发布程序常见问题
http://www.jianshu.com/p/a9f818ac1066

CGAFfineTransform    Animal
http://www.daxueit.com/article/5609.html
http://www.th7.cn/Program/IOS/201312/165775.shtml
IOS keyPath
http://blog.sina.com.cn/s/blog_66c830cf0102v9t4.html
继承上一篇讲述CABasic的一些属性
http://blog.csdn.net/smking/article/details/8424245
动画的一些详解
http://www.cnblogs.com/wengzilin/p/4250957.html
http://www.cnblogs.com/lee0oo0/p/4225730.html

动态库封装
http://nixwang.com/2015/11/09/ios-dynamic-update/?utm_source=tuicool&utm_medium=referral

如何在网页唤醒一个APP  可以传递参数
http://www.cocoachina.com/industry/20140522/8514.html

--------分割--------

深浅Copy
http://www.brighttj.com/ios/oc-copy-mutablecopy.html

NSOperationQueue
http://www.jianshu.com/p/0c241a4918bf

IOS常用知识点
http://m.blog.csdn.net/article/details?id=52180380

IntelliJ IDEA 注册码
http://idea.lanyus.com/

H5混编
https://ke.qq.com/course/80126?_bid=167&_wv=3&from=iosapp

免费API接口
http://www.jianshu.com/p/a2a8e91b2418

ARC下的内存泄露
https://www.zybuluo.com/MicroCai/note/67734

MVVM
http://www.olinone.com/?p=510

git rebase和merge的区别
http://blog.csdn.net/wh_19910525/article/details/7554489

git push命令
http://blog.csdn.net/jo__yang/article/details/50972807

React Native学习
http://reactnative.cn/docs/0.28/getting-started.html
http://www.tuicool.com/articles/zaInUbA

Strong和Weak的区别
http://blog.csdn.net/q199109106q/article/details/8565017

--------分割--------

IOS 整理

Git 命令行:
pull之前需要先把改变的工作放到缓存区
git stash
git pull
git stash pop
git add .
git commit -m “”
git push
git push -d origin devel  删除远程分支
git branch -D devel 删除本地分支
git checkout -b devel 创建本地分支
git branch —all   查看全部分支(远程)
git pull -p  拉取分支
git push origin devel 推送本地分支到远程

AFN结构

SDWebImage的几点特性
* 为UIImageView,UIButton和MKAnnotationView进行了类别扩展,添加了web图片和缓存管理;
* 是一个异步图片下载器;
* 异步的内存+硬盘缓冲以及自动的缓冲过期处理;
* 后台图片解压缩功能;
* 可以保证相同的url(图片的检索key)不会被重复多次下载;
* 可以保证假的无效url不会不断尝试去加载;
* 保证主线程不会被阻塞;
* 性能高;
* 使用GCD和ARC;

IOS后台运行
(BOOL)setKeepAliveTimeout:(NSTimeInterval)timeouthandler:(void (^)(void))keepAliveHandler
函数功能:app每隔timeout唤醒一次。
0.要成功调用该函数,就必须在Info.plist里设UIBackgroundModes键的array值之一voip字符串.
1.timeout必须>=600
2.唤醒app的时间间隔是不精准的。
3.唤醒后只有10秒执行时间。即handler里的代码要在10秒类执行完。10秒后app再次被阻塞。
(可以用-backgroundTimeRemaining属性来返回剩余时间)
4.该函数成功调用后,在程序生命周期内有效。
该函数的效果在回到前台的状况下,依然有效。(因此可以把它当timer使.)
5.clearKeepAliveTimeout函数用来清除handler。

ViewController的self释放的三种情况
  1.1 delegate没有置空nil
  1.2 block循环引用,应当在block中使用weakSelf来引用:__weak typeof(self) weakSelf = self;
  1.3 NSTimer必须先停止(invalidate)然后nil掉。

Content Hugging Priority: 该优先级表示一个控件抗被拉伸的优先级。优先级越高,越不容易被拉伸,默认是250。
指的是view拒绝拉伸。Priority 优先级越高,view越难被拉伸。
值越小越容易被拉伸。

Content Compression Resistance Priority: 该优先级和上面那个优先级相对应,表示一个控件抗压缩的优先级。优先级越高,越不容易被压缩,默认是750
指的是view拒绝压缩内置空间。Priority越高,view的内置空间会越难被压缩。而这里的内置空间,就是上面说的view的intrinsicContentSize。
值越大 内部空间越容易被拉伸

内置大小:UILabel,UIButton等控件,他们都有自己的内置大小。控件的内置大小往往是由控件本身的内容所决定的,比如一个UILabel的文字很长,那么该UILabel的内置大小自然会很长。

IOS 一些小知识点整理相关推荐

  1. JS,JQ,PHP的小知识点整理

    在日常开发中所使用的JS,JQ,PHP的小知识点整理 持续更新-- 1.js和jq获取当前的时间戳 方法一: <script>var timestamp = Date.parse(new ...

  2. 数学小知识点整理(TBC)

    文章目录 前言 素数与同余 线性筛部分 素数 线性递推逆元 指数循环节降幂 当求逆元时模数与求逆元的数有可能不互质时的处理方法 一个神奇的结论 拓展欧拉定理 杂乱的一些性质/技巧 二进制枚举子集 异或 ...

  3. 求职之C++小知识点整理

    1.顺序容器 1.顺序容器:vector,deque,list,forward_list,array,string.其中除list和forward_list外,其它都支持快速随机访问. deque a ...

  4. iOS开发 小知识点

    退回输入键盘: - (BOOL) textFieldShouldReturn:(id)textField{[textField resignFirstResponder]; } CGRect CGRe ...

  5. iOS开发--Runtime知识点整理

    1.Runtime简介 因为Objc是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时.也就是说只有编译器是不够的,还需要一个运行时系统 (runtime system) 来执行编译 ...

  6. iOS学习重要知识点整理02-进程和线程的一个简单解释

    http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 阮一峰的网络日志 » 首页 » 档案 上一篇:熵的社会学意义 下一篇 ...

  7. 再来IOS开发小知识点总结

    一.获取当前日期和星期 // get the current date NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [d ...

  8. springmvc学习(小知识点整理)

    我们客户端经常是会收到服务器返回的json数据这个时候,我们很多时候都是直接使用便可,但有时我们也需要向服务器发送json数据,这个时候获取表单数据并转换为json数据就很有必要了 前台json和js ...

  9. python selenium 小知识点整理笔记(更新中...)

    1.python selenium 获取JS中返回的变量值: # 获取某节点中返回的子节点长度 clsroomNum = self.driver.execute_script("return ...

最新文章

  1. ant design vue input change_vue 表单
  2. [YTU]_2442( C++习题 矩阵求和--重载运算符)
  3. workarea8php,oracle PGA管理(算法)
  4. c语言首尾指针相同 则,6.C语言指针练习题.doc
  5. android 自定义刷新控件,Android开发中MJRefresh自定义刷新动画效果
  6. CSS中一个font缩写的实例
  7. 医动力Android基于CC组件化框架的探索与实践
  8. C/C++宏的使用总结
  9. java动态代理_Java中的动态代理一
  10. 在线颜色拾取器 - 资源篇
  11. 【技术翻译】SIFT算子原理及其实现 (一)介绍
  12. windwos开机自启动脚本
  13. 放弃 vs2005 的 crystal report 。推荐使用国内强人开发的第三方报表开发工具:袁氏报表 。...
  14. Kubernetes - - k8s - v1.12.3 一键部署高可用 Prometheus 并实现邮件告警
  15. 伍德里奇计量经济学第五版第四章计算机操作,伍德里奇计量经济学第四章
  16. 统计用区划代码和城乡划分代码
  17. nxp单片机入门_使用恩智浦MCUXpresso开发FRDM-KL46Z入门
  18. mysql8并行查询_并行查询(Parallel Query)
  19. 北京理工计算机科学与应用,沈蒙_北京理工大学计算机学院
  20. 一分钟学会接网线(网络传输介质详解及布线连接)

热门文章

  1. 一键锁屏源代码c语言,Android一键锁屏开发全过程【源码】【附图】
  2. 农夫过河-广度策略 pta
  3. Ubuntu系统下安装ZEC币服务
  4. WriteProcessMemory的用法
  5. Java数据结构与算法面试题,首发Java程序员人手必备的进阶知识体系,(1)
  6. 消息中间件 - MQ的相关概念
  7. 在Ubuntu 14.04下安装Pepper Flash
  8. 为什么我愿意来北上广打拼?
  9. 转:(很有用)有多个按钮,点击一个变色,点击另一个变色,原来的恢复颜色的方法
  10. python菜鸟教程学习:数据结构