<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wingsofPiano的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wingsofPiano</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wingsofPiano]]></copyright><item><title><![CDATA[IOS界面适配二: Auto Layout的使用(上)]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/47414855</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/47414855</guid><author>wingsofPiano</author><pubDate>Tue, 11 Aug 2015 16:12:12 +0800</pubDate><description><![CDATA[下面说一下我个人对Auto Layout的见解:
   1.当你对一个ViewA使用Auto Layout的时候，系统将会只使用Auto Layout中的条件来限制ViewA，而你原先对这个ViewA做的传统的设置frame或者大小都会立即无效
   2.Auto Layout更接近于我们的自然语言，即它是一个更接近我们实际需求的工具
   3.Auto Layout是基于约束的，一般来说，一个View至少需要4个约束才能确定其位置和大小]]></description><category></category></item><item><title><![CDATA[IOS界面适配一: Pt与Px的关系]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/47339131</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/47339131</guid><author>wingsofPiano</author><pubDate>Fri, 07 Aug 2015 20:23:08 +0800</pubDate><description><![CDATA[参考链接 : iPhone屏幕尺寸、分辨率及适配
  
  在IOS界面开发中，我们一般是使用pt(Point)来作为View的单位，它是一个标准的长度单位，1pt＝1/72英寸
  而px即为我们所说的像素，虽然我们使用的是pt，但是其最后都会转化为px然后显示在我们的手机上
  
  在iphone4以前的时代,iphone整个屏幕长度为320pt*480pt，而iphone的像素为]]></description><category></category></item><item><title><![CDATA[IOS TableView详解(二)]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/47336111</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/47336111</guid><author>wingsofPiano</author><pubDate>Fri, 07 Aug 2015 11:09:02 +0800</pubDate><description><![CDATA[上一次讨论了cell等高的情况, 这一次讨论cell不等高的情况:


   1.cell不等高的话，那么就需要cell中的限制是正确的，这里以cell中有一个label为变高的，整个cell的高度由此label的高度变化而变化来举例


  假如此label距离顶部为30，距离左边为20，距离右边为20，距离下面为30，记得设置label的lines为0(这样即可分行)，和设置其li]]></description><category></category></item><item><title><![CDATA[IOS TableView详解(一)]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/47334819</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/47334819</guid><author>wingsofPiano</author><pubDate>Fri, 07 Aug 2015 10:15:26 +0800</pubDate><description><![CDATA[先考虑tableView中的cell，是变高还是等高，这个很重要，先考虑等高的情况:
 
 一.cell等高


  1.


  新建一个类，使其继承UITableViewCell类，然后记得创建一个绑定的Xib文件


  如果cell等高的话，那说明cell中的宽度已确定，高度也确定，那么最好先将xib中的cell的设计图扩大到实际的大小，这
样才能看到真正的情况，这]]></description><category></category></item><item><title><![CDATA[IOS Block详解]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/47111839</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/47111839</guid><author>wingsofPiano</author><pubDate>Sun, 02 Aug 2015 10:56:29 +0800</pubDate><description><![CDATA[这是我原先写的OC中关于协议和代理的文章，建议大家阅读此篇文章的时候先阅读此文章，便于大家理解:   IOS Protocol与Delegate详解(一)  


 官方中对于Block的解释为: 




 Block objects are a C-level syntactic and runtime feature. They are similar to standard]]></description><category></category></item><item><title><![CDATA[parseSdkContent failedCould not initialize class android.graphics 的解决方法]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/46959585</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/46959585</guid><author>wingsofPiano</author><pubDate>Sun, 19 Jul 2015 22:56:46 +0800</pubDate><description><![CDATA[出现这种错误的原因是在同一台电脑横纵安装了两个adt，他们同时使用了一个.android文件，所以才会出现这些问题，
  解决办法: 
  windows:
     删除C:\Documents and Settings\covics\.android文件，如果还不行的话，删除工作目录下的的.metadata文件夹(windows未尝试，参考的是另外一位仁兄的:parseSdkConten]]></description><category></category></item><item><title><![CDATA[IOS Protocol与Delegate详解(二)]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/46820185</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/46820185</guid><author>wingsofPiano</author><pubDate>Thu, 09 Jul 2015 18:04:27 +0800</pubDate><description><![CDATA[2.回调协议(委托)

 在我的理解中，所谓的回调协议，其实就是委托的意思，也就是说委托就是一个非常强大的依靠协议的设计模式,所以有人说，在OC中，委托是协议的一部分
 为什么说委托是及其重要的概念呢，例如在网络请求的时候，我们得主UI线程不知道分线程什么时候从网络上面请求回完整的数据，而且也有可能失败，这样做最简单得方法就是，自定义一个委托协议，并让主UI线程的类实现此委托，将自己这个委托]]></description><category></category></item><item><title><![CDATA[IOS Protocol与Delegate详解(一)]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/46708239</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/46708239</guid><author>wingsofPiano</author><pubDate>Wed, 01 Jul 2015 11:20:53 +0800</pubDate><description><![CDATA[我所认为的Protocol(协议)是类似于java中的接口这一概念的，所谓协议，可以理解成一个类所具有的方法的特征集合，协议也属于面向对象的一部分，使用它，可以弥补类的不能多继承缺点，继承和协议的双重设计既保持了类的数据安全也变相实现了多继承


  这里的Protocol(协议，也算是java的接口)，我始终认为其大致可以分为两种情况: 1.调用协议  2.回调协议
  
  1.调用]]></description><category></category></item><item><title><![CDATA[Android数据库SQLite使用详解三 : 数据库的升级]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/46584923</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/46584923</guid><author>wingsofPiano</author><pubDate>Sun, 21 Jun 2015 22:36:15 +0800</pubDate><description><![CDATA[上一篇博客:   Android数据库SQLite使用详解二 : 学生管理系统的简单实现


   我们知道，软件是有其生命周期的，我们不可能在一开始的时候就知道这个软件接下来所需要的所有数据库，而是在软件的更新迭代过程中，我们才根据不断变化的需求增加相应的数据库。
   当然，Android也给我们升级数据库提供了相应的方法 它就是 SQLiteOpenHelper 中的 public]]></description><category></category></item><item><title><![CDATA[Android数据库SQLite使用详解二 : 学生管理系统的简单实现]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/46580661</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/46580661</guid><author>wingsofPiano</author><pubDate>Sun, 21 Jun 2015 10:16:51 +0800</pubDate><description><![CDATA[在上一篇博客中，介绍了SQLiteOpenHelper这个最基本的类，今天就实现一个简单的学生信息数据库，能实现增，删，查，改四个基本功能
    首先就是要抽象出学生这个类，代码如下:


    /**
 * 学生的抽象类型
 *
 * 其中存放着学生表的表明和其字段名
 */
public class StuModel {

    //学生表名
    public  static]]></description><category></category></item><item><title><![CDATA[Android数据库SQLite使用详解一 : SQLiteOpenHelper详解]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/46575879</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/46575879</guid><author>wingsofPiano</author><pubDate>Sat, 20 Jun 2015 22:07:18 +0800</pubDate><description><![CDATA[众所周知，Android使用的SQLite数据库, 其特点是高度便携、使用方便、结构紧凑、高效、可靠
   今天的目标就是在Android手机中创建一个数据库
   首先，Android 使用的是SQLiteOpenHelper类来管理数据库，来看看官方的对于此类的概述: 
   
   A helper class to manage database creation and vers]]></description><category></category></item><item><title><![CDATA[Failed to resolve: com.android.support:appcompat-v7:21.的解决方法]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/46573253</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/46573253</guid><author>wingsofPiano</author><pubDate>Sat, 20 Jun 2015 13:15:14 +0800</pubDate><description><![CDATA[在使用Android Studio的时候，有时候编译程序会报以上错误，出现错误的原因是缺少程序运行所需要的兼容库
support Library , 与eclipse每次创建程序都会生成相对应的support Library 不同，Android studio应该是直接使用

SDK中的support Library 


  解决方法: 


  这时候只要打开打开SDK Ma]]></description><category></category></item><item><title><![CDATA[自己动手解Json!(IOS利用分治法解析Json)(三)]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/46551737</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/46551737</guid><author>wingsofPiano</author><pubDate>Thu, 18 Jun 2015 20:03:45 +0800</pubDate><description><![CDATA[上一次我们已经解析出了 {\"name\":\"zhangsan\",\"age\":26
 } 这种最基础的json字符串，那么这一次就需要解析带有{}这种对象括号的
json字符串了
那么，这一次的任务就是解析出@"{\"name\":\"zhang\",\"learn\":{\"school\":{\"name\":\"wudaokou\"}},\"age\":18}"这个
json]]></description><category></category></item><item><title><![CDATA[Android loading data for android 5.0 出错的解决方法]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/46495077</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/46495077</guid><author>wingsofPiano</author><pubDate>Sun, 14 Jun 2015 22:05:23 +0800</pubDate><description><![CDATA[出现这个错误的原因似乎是在adt导入sdk-21的时候不能编译通过的原因
 
  解决方法:  将自己的jdk升级到最新版本
  jdk1.8下载地址；http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  我用的mac电脑，用下载的这个不知道为什么不能成功安装，结果在百度上]]></description><category></category></item><item><title><![CDATA[自己动手解Json!(IOS利用分治法解析Json)(二)]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/46462141</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/46462141</guid><author>wingsofPiano</author><pubDate>Thu, 11 Jun 2015 21:29:11 +0800</pubDate><description><![CDATA[第一篇的链接为  自己动手解Json!(IOS利用分治法解析Json)(一)


  好了，我们知道，写程序需要一步一步的来，我们今天的任务就是要把   {\"name\":\"zhangsan\",\"age\":26 }  这个Json数据解析成NSDictionary对象
 (加入的\是转义字符，因为在字符串中"字符是包裹字符用的，在"的前面加\程序才知道这个"是字符串中的"，而不是]]></description><category></category></item><item><title><![CDATA[自己动手解Json!(IOS利用分治法解析Json)(一)]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/46432287</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/46432287</guid><author>wingsofPiano</author><pubDate>Tue, 09 Jun 2015 21:57:22 +0800</pubDate><description><![CDATA[最近在IOS项目中需要从服务器端获取Json数据然后本地解析，本来任务非常简单的事情没想到后来还挺复杂 具体遇到的问题和解决方法我会在另一篇博客中写出，总之，
IOS解析Json显然不如JAVA那么方便，容错率高，另外说一下Java解析Json首推Gson，相当好用
  后来自己想，为什么不自己写一个解析Json的类呢，仔细研究了Json的结构，发现利用算法中的分治法来解决是极好的
  先介]]></description><category></category></item><item><title><![CDATA[程序设计师名言]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/45973589</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/45973589</guid><author>wingsofPiano</author><pubDate>Mon, 25 May 2015 19:57:29 +0800</pubDate><description><![CDATA[重要的不是你用什么开发，而是你在开发什么。

程序=算法+数据结构

过程=对象+属性+方法+事件

程序员的秘诀是：编程、编程、再编程。

编程的秘诀是：思索、思索、再思索。

自由固不是钱所能买到的，但能够为编程而卖掉。

编程为了生活，生活为了编程。

不要认为编程是一项任务，其实是一次让人羡慕的机会！

编程之乐何处寻，数点梅花天地心。

假如编程易懂得]]></description><category></category></item><item><title><![CDATA[Android控件覆盖并实现简单标签]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/45950069</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/45950069</guid><author>wingsofPiano</author><pubDate>Sun, 24 May 2015 10:20:56 +0800</pubDate><description><![CDATA[有的时候，我们需要一个View覆盖在另外一个View上,并且需要这个View覆盖于另一个View特定的位置
  下面根据实现一个类似于其它App上的历史记录标签或者热点标签的Demo来讲解  
  
  示例:]]></description><category></category></item><item><title><![CDATA[swift获取屏幕的宽高]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/45898627</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/45898627</guid><author>wingsofPiano</author><pubDate>Thu, 21 May 2015 23:03:25 +0800</pubDate><description><![CDATA[swift获取屏幕的宽高]]></description><category></category></item><item><title><![CDATA[IOS获取屏幕的真实宽高]]></title><link>https://blog.youkuaiyun.com/wingsofPiano/article/details/45726729</link><guid>https://blog.youkuaiyun.com/wingsofPiano/article/details/45726729</guid><author>wingsofPiano</author><pubDate>Thu, 14 May 2015 21:51:14 +0800</pubDate><description><![CDATA[新手第一次发博客，有什么错误望各位前辈能指出来
 
 小弟最近在开发IOS应用，却发现一个问题，IOS7和IOS8在横屏模式下得到的宽高是不一样的，竖屏是一样的，但是在网上却没有找到类似的解决方法，于是
自己写了一个方法，如要使用，直接粘贴到viewcontroller即可]]></description><category></category></item></channel></rss>