<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yishabeier152的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yishabeier152</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yishabeier152]]></copyright><item><title><![CDATA[MAC环境如何将本地代码上传到GitHub上]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/75047942</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/75047942</guid><author>yishabeier152</author><pubDate>Thu, 13 Jul 2017 17:42:24 +0800</pubDate><description><![CDATA[该博客中使用客户端GitHub Desktop上传代码，客户端logo如图所示：
       
      在上传代码之前我们需要做的准备是：
      1：下载客户端GitHub Desktop,下载链接是：https://desktop.github.com，下载之后软件打开后的效果如图示：
     
      2：注册一个GitHub的账号，网址是：https://gith]]></description><category></category></item><item><title><![CDATA[iOS内存管理之NSAutoreleasePool]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/52550396</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/52550396</guid><author>yishabeier152</author><pubDate>Fri, 16 Sep 2016 16:25:10 +0800</pubDate><description><![CDATA[1:NSAutoreleasePool实际上是个对象引用计数自动处理器。NSAutoreleasePool可以同时有多个，它的组织是个栈，总是存在一个栈顶pool，也就是当前pool，每创建一个pool，就往栈里压一个，改变当前pool为新建的pool，然后，每次给pool发送drain消息，就弹出栈顶的pool，改当前pool为栈里的下一个
 pool。

2:NSAutoReleaseP]]></description><category></category></item><item><title><![CDATA[block]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/52314278</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/52314278</guid><author>yishabeier152</author><pubDate>Sat, 03 Sep 2016 11:35:51 +0800</pubDate><description><![CDATA[block：带有自动变量的匿名函数
匿名函数：没有名字的函数，在OC中的block可以用指针来直接调用一个函数
自动变量在block中的具体表现就是截获自动变量
1：block的定义

1:定义block变量
 返回值类型（^block变量名）（参数类型1，参数类型2 ....）
 2:给block变量赋值
 block变量名 = ^(参数类型1, 参数类型2...)
 {
 
 };
]]></description><category></category></item><item><title><![CDATA[ARC 下引用计数的打印]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/52326487</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/52326487</guid><author>yishabeier152</author><pubDate>Sat, 03 Sep 2016 11:21:36 +0800</pubDate><description><![CDATA[在管理内存的时候经常需要打印对象的引用计数,来检测对象是否发生内存泄漏的情况]]></description><category></category></item><item><title><![CDATA[ARC 下代理产生内存泄漏的情况]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/52325447</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/52325447</guid><author>yishabeier152</author><pubDate>Sat, 03 Sep 2016 10:45:25 +0800</pubDate><description><![CDATA[在ARC下依然会发生内存泄漏的情况，比如在使用代理的时候，A有个属性参照B，B有个属性参照A，如果将各自的对象的属性设为strong属性，因为两个对象都无法释放，就会发生内存泄漏的现象；
 比如Person类让Agent对象去查看每张票的价钱并统计还剩多少张票，而Agent 让Person对象去统计有多少人去看电影，这个时候就会发生内存泄漏的现象，代码如下：
Person.h
#import]]></description><category></category></item><item><title><![CDATA[协议的应用—代理设计模式]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/52293362</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/52293362</guid><author>yishabeier152</author><pubDate>Thu, 25 Aug 2016 14:21:18 +0800</pubDate><description><![CDATA[Person.h
#import 
#import "Agent.h"
@interface Person : NSObject

//拥有一个代理属性
@property(nonatomic,retain)Agent *delegate;
-(void)buyTicket;

@end
Person.m

#import "Person.h"

@implementation Person]]></description><category></category></item><item><title><![CDATA[iOS protocol 协议]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/52274935</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/52274935</guid><author>yishabeier152</author><pubDate>Thu, 25 Aug 2016 14:20:39 +0800</pubDate><description><![CDATA[vvvv]]></description><category></category></item><item><title><![CDATA[分类，扩展和继承的区别]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/52313785</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/52313785</guid><author>yishabeier152</author><pubDate>Thu, 25 Aug 2016 14:19:44 +0800</pubDate><description><![CDATA[1：分类和扩展的区别
      分类：声明的时候使用格式中括号必须要有分类名称，创建完成后有两个文件夹（Person+action.h Person+action.m文件）
@interface 类名 (分类名称)
/*
   方法声明
*/
@end
@implementation 类名（分类名称）
/*
  方法实现
*/
@end
       扩展：声明的时候使用格式中括号没有东西，]]></description><category></category></item><item><title><![CDATA[类扩展：Extension]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/52312708</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/52312708</guid><author>yishabeier152</author><pubDate>Thu, 25 Aug 2016 14:18:50 +0800</pubDate><description><![CDATA[类扩展：Extension 也称为匿名分类
  1：作用：1：能为某个类附加额外的属性，成员变量，方法声明
                    2：定义一些私有方法，可以隐藏不对外公布的方法，多用于隐藏一些中间步骤的方法
  2：创建：NewFile-Objective-C-Extention
  


3：使用格式：创建成功后只有Person_action.h一个文件（cate]]></description><category></category></item><item><title><![CDATA[分类：category]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/52303001</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/52303001</guid><author>yishabeier152</author><pubDate>Thu, 25 Aug 2016 14:17:33 +0800</pubDate><description><![CDATA[分类：category ：
//声明
@interface 类名

@end

//实现
@implemention 类名(分类名称)

@end]]></description><category></category></item><item><title><![CDATA[打包静态库.a文件]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/52253126</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/52253126</guid><author>yishabeier152</author><pubDate>Fri, 19 Aug 2016 17:47:37 +0800</pubDate><description><![CDATA[在开发iOS的工作中会开发一些.a 的静态库文件（.a 静态库文件是编译好的的二进制文件）或者打包一下别人的第三方类库包装成自己的.a 文件。就需要打包.a 文件，下面介绍如何打包静态库文件：
1：建立工程 选择 Cocoa Touch Static Library ，在Product里面建立的.a 文件显示为红色






2：将你所需要打包的文件比如AFNetworking ]]></description><category></category></item><item><title><![CDATA[预处理命令: #if ,#ifdef ,#ifndef]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/52152416</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/52152416</guid><author>yishabeier152</author><pubDate>Mon, 08 Aug 2016 15:40:05 +0800</pubDate><description><![CDATA[Q : 在项目的 .h 文件中,

#ifndef XXX_h

#define XXX_h

//程序段1

#endif  /* XXX_h
 */

的作用?




A : 如果 XXX.h 不存在,就引入 XXX.h ,否则不用引入. 是为了防止该文件被重复引用.




#什么是重复引用:

其实“被重复引用”是指一个头文件在同一个.m文件]]></description><category></category></item><item><title><![CDATA[iOS中.pch文件的使用]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/52127367</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/52127367</guid><author>yishabeier152</author><pubDate>Mon, 08 Aug 2016 15:27:00 +0800</pubDate><description><![CDATA[以前在写代码的时候在屏幕适配和系统适配的时候都是建立一个头文件然后当某个类需要使用的时候#import 进去，
       


今天看公司的项目，发现他们使用的是一个.pch文件，既然两种方式都可以实现，那公司项目中为什么要使用.pch文件呢？原因是当我们的工程项目特别大的时候，我们需要把大量的头文件和宏定义导入到每一个类中，这样就会导致编译时间过长，系统耗费的资源过大。]]></description><category></category></item><item><title><![CDATA[iOS 9 下写WebView的错误]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/52130148</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/52130148</guid><author>yishabeier152</author><pubDate>Fri, 05 Aug 2016 17:14:06 +0800</pubDate><description><![CDATA[今天同学问一个问题，iphone Safari中播放网页视频的时候只能是全屏播放，如何使其禁止全屏播放，参考的答案是：
        1：前端将video 标签加入属性webkit-playsinline ,如：;
         2:Objective-C 中添加配置：_webView.allowslnlineMediaPlayback = YES;
        这样web视频就可]]></description><category></category></item><item><title><![CDATA[构造方法]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/51620242</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/51620242</guid><author>yishabeier152</author><pubDate>Thu, 09 Jun 2016 16:22:52 +0800</pubDate><description><![CDATA[1：使用构造方法的目的：为了让对象方法一构建出来，成员变量就拥有固定的值
2：先调用父类的构造方法再进行子类子类内部成员变量的初始化
#import
@interface Person:NSObject
@property int age;
@end
@implementation Person
//如果想让person对象的age的初始值为10
-(id)init
{
    //初始化对象]]></description><category></category></item><item><title><![CDATA[description语法及点语法]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/51620029</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/51620029</guid><author>yishabeier152</author><pubDate>Thu, 09 Jun 2016 11:43:44 +0800</pubDate><description><![CDATA[1：-（description）对象方法 使用NSLog和%@输出某个对象时。会调用对象的description 方法，并得到返回值进行输出
  2：使用 %@打印输出对象时，默认打印输出 ,NSLog 函数一旦发现用%@输出某个OC对象时，就会调用对象的description方法（默认为NSString类型）,并将     description方法返回的Oc字符串返回到屏幕上，OC中的des]]></description><category></category></item><item><title><![CDATA[多态]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/51589433</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/51589433</guid><author>yishabeier152</author><pubDate>Sun, 05 Jun 2016 14:48:12 +0800</pubDate><description><![CDATA[/*
  多态：多种形态（建立在继承的基础之上）
  多态的体现：父类指针指向子类，每个OC对象都有多态性
  多态的局限性：父类指针不能直接调用子类特有的方法，如果要正常调用子类特有的方法
              需要将父类指针强制转换为子类指针
 */
#import
@interface Zoombie:NSObject
-(void)walk;
@end
@implementation]]></description><category></category></item><item><title><![CDATA[继承]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/51587951</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/51587951</guid><author>yishabeier152</author><pubDate>Sun, 05 Jun 2016 10:32:11 +0800</pubDate><description><![CDATA[当一段代码中包含了大量重复的内容，代码看起来很没有效率，编程时出现大量的重复代码意味着代码架构是一个失败的架构，因为你要维护两倍的代码，修改代码时，必须修改两处，这样很容易出错，如果你忘记更改其中一处代码，一些奇怪的bug就会出现，为了解决这个问题，提出了继承的概念；
       继承的语法格式：@interface Circle：NSObject     
/*
 继承的好处：抽取了公共代]]></description><category></category></item><item><title><![CDATA[self 关键字的使用]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/51564865</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/51564865</guid><author>yishabeier152</author><pubDate>Thu, 02 Jun 2016 16:06:01 +0800</pubDate><description><![CDATA[根据上一篇的内容，当我们访问成员变量的时候，使用的是对象调用set的方法实现，但是有时候代码会很繁琐，所以为了解决这一问题，采用了self关键字访问；
#import

@interface Car : NSObject
{
    int  _wheels;
}

-(void)setWheels:(int)wheels;
-(int)wheels;
-(void)run;
@end
@imp]]></description><category></category></item><item><title><![CDATA[set方法，get方法和类方法的使用]]></title><link>https://blog.youkuaiyun.com/yishabeier152/article/details/51564122</link><guid>https://blog.youkuaiyun.com/yishabeier152/article/details/51564122</guid><author>yishabeier152</author><pubDate>Thu, 02 Jun 2016 10:45:57 +0800</pubDate><description><![CDATA[1：使用封装的好处：
        过滤掉不合理的值
        屏蔽内部的赋值过程
        让外界关注内部的细节
   2：set方法，get方法
      之前访问成员变量的时候，我们采用的都是@public设置属性，但是使用@public 不安全，成员变量可以任意被赋值，无法保证数据的安全性，所以我们使用set和get方法来管理成员变量；
#import 

@i]]></description><category></category></item></channel></rss>