http://blog.csdn.net/ns_code/article/details/17485221 http://blog.csdn.net/zhoushumin157016/article/details/73274594