<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[twier_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/twier_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; twier_]]></copyright><item><title><![CDATA[iOS tableView删除操作]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/87606807</link><guid>https://blog.youkuaiyun.com/twier_/article/details/87606807</guid><author>twier_</author><pubDate>Mon, 18 Feb 2019 11:27:06 +0800</pubDate><description><![CDATA[先设置UITableView代理

 tableview.delegate = self;

设置tableView允许编辑：

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
  //开启编辑模式
  [tableView setEditing:YES ani...]]></description><category></category></item><item><title><![CDATA[接口与API设计]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/87605331</link><guid>https://blog.youkuaiyun.com/twier_/article/details/87605331</guid><author>twier_</author><pubDate>Mon, 18 Feb 2019 11:04:44 +0800</pubDate><description><![CDATA[
	用前缀避免命名空间冲突
	
选择与你的公司，应用程序或两者皆有关联之名称作为类名的前缀，并在所有代码中均使用这一前缀
	若自己所开发的程序库中用到了第三方库，则应为其中的名称加上前缀

	提供“全能初始化方法”
	
在类中提供一个全能初始化方法。其他初始化方法均应调用此方法。
	若全能初始化方法与超类不同，则需覆写超类中对应的方法
	如果超类的初始化方法不适应于子类，那么应该覆写这个超类方法实...]]></description><category></category></item><item><title><![CDATA[iOS贝塞尔曲线简单使用]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/87296804</link><guid>https://blog.youkuaiyun.com/twier_/article/details/87296804</guid><author>twier_</author><pubDate>Thu, 14 Feb 2019 20:50:57 +0800</pubDate><description><![CDATA[
	第一种是创建一个UIView子类， 用UIBezierPath画圆。
	
创建和使用path对象步骤：
1、 重写View的drawRect方法
2、 创建UIBezierPath的对象
3、 使用方法moveToPoint:设置初始点
4、 根据具体要求使用UIBezierPath类方法绘图（比如要画线、矩形、圆、弧？等）
5、 设置UIBezierPath对象相关属性 （比如lineWid...]]></description><category></category></item><item><title><![CDATA[iOS AFNetworking 的简单使用]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/86711245</link><guid>https://blog.youkuaiyun.com/twier_/article/details/86711245</guid><author>twier_</author><pubDate>Thu, 31 Jan 2019 10:01:30 +0800</pubDate><description><![CDATA[为什么要用AFNetworking？

 带block形式， 内部是任务队列进行下载 。
	 还可以检测网络状态。
GET请求

- (void)getAFNetworking {
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    NSString *url = @&quot;http://apis.juhe.c...]]></description><category></category></item><item><title><![CDATA[iOS 懒加载及_xxx及self.xxx]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/86673143</link><guid>https://blog.youkuaiyun.com/twier_/article/details/86673143</guid><author>twier_</author><pubDate>Mon, 28 Jan 2019 11:47:33 +0800</pubDate><description><![CDATA[
- (UILabel *)nameLabel{
    if (!_nameLabel) {
        _nameLabel = [[UILabel alloc]init];
        [self.view addSubview: _nameLabel];

    }
    return _nameLabel;
}

懒加载 就是用的时候才会加载，在某些情况下可以节省资源

必须...]]></description><category></category></item><item><title><![CDATA[带界面的学生管理系统封装学生类]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/81582881</link><guid>https://blog.youkuaiyun.com/twier_/article/details/81582881</guid><author>twier_</author><pubDate>Sat, 11 Aug 2018 08:52:43 +0800</pubDate><description><![CDATA[
StudentMessage.h

#import &amp;lt;Foundation/Foundation.h&amp;gt;

@interface StudentMessage : NSObject 
@property (nonatomic, copy)NSString *nameString, *numberString, *classString, *sexString, *scoreString...]]></description><category></category></item><item><title><![CDATA[iOS简单的传值]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/81564154</link><guid>https://blog.youkuaiyun.com/twier_/article/details/81564154</guid><author>twier_</author><pubDate>Fri, 10 Aug 2018 16:13:41 +0800</pubDate><description><![CDATA[1.协议传值

从twoViewController传到viewController


	
twoViewController.h

#import &amp;lt;UIKit/UIKit.h&amp;gt;

//声明一个协议
@protocol twoViewControllerDelegate &amp;lt;NSObject&amp;gt;

//自定义方法来反向传值
- (void)changeWithString:...]]></description><category></category></item><item><title><![CDATA[UITextView的阴影文字（placeholder）]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/81407135</link><guid>https://blog.youkuaiyun.com/twier_/article/details/81407135</guid><author>twier_</author><pubDate>Sat, 04 Aug 2018 09:07:52 +0800</pubDate><description><![CDATA[1.把UITextView的text属性当成“placeholder”使用。
2.在开始编辑的代理方法里清除“placeholder”。
3.在结束编辑的代理方法里根据条件设置“placeholder”。

这种方法有一个缺点是：用户点击textview时，placeholder就会消失


// 创建textView
UITextView *textView =[[UITextViewalloc...]]></description><category></category></item><item><title><![CDATA[Objective-C中的编码规范]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/81257665</link><guid>https://blog.youkuaiyun.com/twier_/article/details/81257665</guid><author>twier_</author><pubDate>Sat, 28 Jul 2018 09:53:28 +0800</pubDate><description><![CDATA[Objective-C中的编码规范

条件语句应该用大括号包围起来

if (!error) {
    return success;
}


case语句
	当case包含多行语句时，需要加上括号
	命名
推荐使用长的，描述性方法和变量名 （推荐 settingsButton） （不推荐 setBut）
	常量应该用驼峰命名法，用相关类名作为前缀
	方法名应该在方法类型之后（-/+）之后有一个...]]></description><category></category></item><item><title><![CDATA[属性关键字]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/81257612</link><guid>https://blog.youkuaiyun.com/twier_/article/details/81257612</guid><author>twier_</author><pubDate>Sat, 28 Jul 2018 09:49:15 +0800</pubDate><description><![CDATA[属性关键字

属性关键字分为三类
属性按照下面来定义属性


@property (nonatomic, readwrite, copy) NSString *name;

第一类 ：读写性控制

readonly 只读的，默认标记读写 只产生getter，不产生setter
	readwrite 默认属性 读写 同时产生setter 和getter
第二类：原子性控制

nonatomic:普通...]]></description><category></category></item><item><title><![CDATA[视图层次结构与视图控制器]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/81257448</link><guid>https://blog.youkuaiyun.com/twier_/article/details/81257448</guid><author>twier_</author><pubDate>Sat, 28 Jul 2018 09:40:30 +0800</pubDate><description><![CDATA[UIWindow作为iOS程序的窗口（也可以说是根视图），它就像一个容器，可以用来存放自己定义的各个子视图（UIView或其子类）。层次结构中的每个视图分别绘制自己，视图会将自己绘制在图层上。

为UIWindow添加View的方法为[self.window addSubView:(View的名字)];当然也可以设置window的rootViewController属性，rootViewContr...]]></description><category></category></item><item><title><![CDATA[类的实例 课程设计]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/80793073</link><guid>https://blog.youkuaiyun.com/twier_/article/details/80793073</guid><author>twier_</author><pubDate>Sun, 24 Jun 2018 18:03:59 +0800</pubDate><description><![CDATA[#import &amp;lt;Foundation/Foundation.h&amp;gt;

@interface Course : NSObject {
    NSString *_courseName;//课程名
    NSString *_teacherName;//任课老师名
    NSInteger _courseTime;//课时数
}

//构造方法
//初始化一个对象
- (id)ini...]]></description><category></category></item><item><title><![CDATA[多态的理解]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/80793052</link><guid>https://blog.youkuaiyun.com/twier_/article/details/80793052</guid><author>twier_</author><pubDate>Sun, 24 Jun 2018 18:00:39 +0800</pubDate><description><![CDATA[#import &amp;lt;Foundation/Foundation.h&amp;gt;

@interface FKBase : NSObject

- (void) base;
- (void) text;

@end

#import &quot;FKBase.h&quot;

@implementation FKBase

- (void) base {
    NSLog(@&quot;父类的普通base方法&quot;);
}
- (...]]></description><category></category></item><item><title><![CDATA[重写父类方法]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/80793014</link><guid>https://blog.youkuaiyun.com/twier_/article/details/80793014</guid><author>twier_</author><pubDate>Sun, 24 Jun 2018 17:58:03 +0800</pubDate><description><![CDATA[#import &amp;lt;Foundation/Foundation.h&amp;gt;

@interface FKBird : NSObject

- (void)fly ;

@endFKBird类的创建和实现#import &quot;FKBird.h&quot;

@implementation FKBird

- (void)fly {
    NSLog(@&quot;我在天空里自由自在地飞翔&quot;);
}
@end#impo...]]></description><category></category></item><item><title><![CDATA[decription]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/80792953</link><guid>https://blog.youkuaiyun.com/twier_/article/details/80792953</guid><author>twier_</author><pubDate>Sun, 24 Jun 2018 17:50:14 +0800</pubDate><description><![CDATA[类的创建#import &amp;lt;Foundation/Foundation.h&amp;gt;

@interface FKApple : NSObject

@property (nonatomic , copy) NSString *color;
@property (nonatomic , assign) double weight;

- (instancetype) initWithColor:...]]></description><category></category></item><item><title><![CDATA[self和super]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/80638682</link><guid>https://blog.youkuaiyun.com/twier_/article/details/80638682</guid><author>twier_</author><pubDate>Sun, 10 Jun 2018 09:56:02 +0800</pubDate><description><![CDATA[self和supersuper和self指向是同一个对象对象的初始化（NSobject）类中就有init方法可以不用声明 直接实现- (id)init {
     self = [super init] ;//初始化父类对象
     if (self) {
         //初始化
     }
     return self ;
 }selfself表示当前方法的调用者在类方法中sel...]]></description><category></category></item><item><title><![CDATA[对于封装和继承的进一步理解]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/80638668</link><guid>https://blog.youkuaiyun.com/twier_/article/details/80638668</guid><author>twier_</author><pubDate>Sun, 10 Jun 2018 09:54:51 +0800</pubDate><description><![CDATA[继承和封装声明Rectangle类继承NSObject父类#import &amp;lt;Foundation/Foundation.h&amp;gt;


@interface Rectangle : NSObject


@property int width , height ;


- (void)setWidth:(int)w andHeight :(int) h ;
- (void)caculate ...]]></description><category></category></item><item><title><![CDATA[类的三大特性]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/80638655</link><guid>https://blog.youkuaiyun.com/twier_/article/details/80638655</guid><author>twier_</author><pubDate>Sun, 10 Jun 2018 09:52:21 +0800</pubDate><description><![CDATA[类的三大特性封装数据封装就是将实例变量隐藏起来，不能直接访问实例变量setter方法给成员变量赋值 设值方法不会返回任何值，因为他的主要目的是将方法参数设为对应的实例变量的值getter方法获取成员变量的值 取值方法的目的是获取存储在对象中的实例变量的值，并通过程序返回发送出去，取值方法必须返回的值作为return的参数你必须通过使用一些方法来访问这些对外界隐藏的数据，这种做法集中访问实例变量的方...]]></description><category></category></item><item><title><![CDATA[属性和成员变量]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/80638649</link><guid>https://blog.youkuaiyun.com/twier_/article/details/80638649</guid><author>twier_</author><pubDate>Sun, 10 Jun 2018 09:51:26 +0800</pubDate><description><![CDATA[属性和成员变量成员变量在接口interface里面的统称为成员变量成员变量必须包含在大括号中注意在ObjC中不管是自定义的类还是系统类对象都必须是一个指针属性编译器自动将变量set和get方法的合成，可用点语法读取，可作为变量使用可以使用关键字 @synthesize 来对属性进行绑定。@synthesize 关键字后面紧跟着的是属性名字，等号后面即为该属性所绑定的成员变量。关键字 @synthe...]]></description><category></category></item><item><title><![CDATA[对象方法和类方法]]></title><link>https://blog.youkuaiyun.com/twier_/article/details/80638639</link><guid>https://blog.youkuaiyun.com/twier_/article/details/80638639</guid><author>twier_</author><pubDate>Sun, 10 Jun 2018 09:50:45 +0800</pubDate><description><![CDATA[类方法和对象方法类方法（+）表示类方法调用方式 1.可以直接调用 2.可以用类名 方法名调用 3.可以用对象名 方法名调用类方法不可以调用实例方法，但是可以创建对象来访问实例方法类方法不可以使用实例变量，但可以使用self对象方法（-）表示对象方法对象方法只能由实例变量来调用对象方法可以访问当前对象的成员变量对象方法的调用格式：【对象名 对象方法名：（参数名）】#import &amp;lt;Founda...]]></description><category></category></item></channel></rss>