<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SuAdrenine的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/myinclude</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; myinclude]]></copyright><item><title><![CDATA[招聘靠谱程序员系列：6 @property 的本质是什么？ivar、getter、setter 是如何生成并添加到这个类中的？]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/84933353</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/84933353</guid><author>myinclude</author><pubDate>Mon, 10 Dec 2018 09:26:05 +0800</pubDate><description><![CDATA[答：
1）、@property 的本质是：
@property = ivar + getter + setter

翻译出来就是：
属性（property）等于实例变量（ivar）加上存取方法（getter和setter，实例变量用于存储数据，而存取方法用来读取写入该实例变量的数据有swift开发经验的人对这个感触应该表较深（存储属性和计算属性）
编译器会自动为@property添加实例变量和存取...]]></description><category></category></item><item><title><![CDATA[招聘靠谱程序员系列：5 如何让自己的类用 copy 修饰符？如何重写带 copy 关键字的 setter？]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/84933184</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/84933184</guid><author>myinclude</author><pubDate>Sun, 09 Dec 2018 22:23:02 +0800</pubDate><description><![CDATA[答：
1）、让自己的类可以使用copy修饰符的步骤：
a)、让自己的类遵循NSCopying协议
b)、实现NSCopying协议中必须实现的代理方法：
    - (id)copyWithZone:(NSZone *)zone;

示例代码：
- (id)copyWithZone:(NSZone *)zone {
    //创建实例的方式比较特殊
    Person *p = [[[self...]]></description><category></category></item><item><title><![CDATA[招聘靠谱程序员系列：4 这个写法会出什么问题： @property (copy) NSMutableArray *array]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/84929124</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/84929124</guid><author>myinclude</author><pubDate>Sun, 09 Dec 2018 17:22:46 +0800</pubDate><description><![CDATA[答：
1）、copy修饰的属性进行赋值的时候会生成一份不可变的副本，此时修改副本array（增删之类的操作）会提示找不到方法而报异常；
2）、不写原子性修饰词默认使用atomic，而atomic性能比nonatomic差很多。

...]]></description><category></category></item><item><title><![CDATA[招聘靠谱程序员系列：3 怎么用 copy 关键字？]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/84928432</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/84928432</guid><author>myinclude</author><pubDate>Sun, 09 Dec 2018 15:26:56 +0800</pubDate><description><![CDATA[答：
1)、一般对于那些遵循NSCopying协议的类才能使用copy，例如针对那些有不可变类型和可变类型的类，NSString, NSArray 与之对应的是NSMutableString, NSMutableArray等。因为他们之间可能进行赋值操作，为确保对象中的字符串值不会无意间变动，应该在设置新属性值时拷贝一份。
2)、block一般也使用copy，这是MRC遗留下来的使用习惯
tips...]]></description><category></category></item><item><title><![CDATA[招聘靠谱程序员系列：2 什么情况使用 weak 关键字，相比 assign 有什么不同？]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/84927804</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/84927804</guid><author>myinclude</author><pubDate>Sun, 09 Dec 2018 14:29:29 +0800</pubDate><description><![CDATA[答：
1)、什么情况下使用weak：
a)、在ARC中修饰代理
b)、使用@IBOutlet连接控件
c)、当block会造成循环引用

2)、与assign的不同
assign可以用于非对象类型，而weak必须用于对象类型


参考资料：
1、区别


1）.修饰变量类型的区别
weak 只可以修饰对象。如果修饰基本数据类型，编译器会报错-“Property with ‘weak’ attrib...]]></description><category></category></item><item><title><![CDATA[招聘靠谱程序员系列：1 代码风格优化与纠错]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/84927568</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/84927568</guid><author>myinclude</author><pubDate>Sun, 09 Dec 2018 13:59:06 +0800</pubDate><description><![CDATA[风格纠错

答：
// 1)、使用NS_ENUM而不是C语言类型的枚举enum
typedef NS_ENUM(NSInteget, XBYGender) { //使用gender比sex正式
    XBYGenderMan,
    XBYGenderWoman
}

// 2)、NSString一般使用copy修饰

// 3)、一般定义一个初始化方法来对属性进行赋值，而把具体属性隐藏起来（...]]></description><category></category></item><item><title><![CDATA[LeetCode系列：4 Median of Two Sorted Arrays]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/84774513</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/84774513</guid><author>myinclude</author><pubDate>Mon, 03 Dec 2018 17:43:49 +0800</pubDate><description><![CDATA[Q：There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).
You may assume nums1 and n...]]></description><category></category></item><item><title><![CDATA[Mac生成多个ssh并配置不同域名]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/84764326</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/84764326</guid><author>myinclude</author><pubDate>Mon, 03 Dec 2018 14:37:19 +0800</pubDate><description><![CDATA[1.前言
有时候我们会有多个git账号，如GitHub，GitLab，这时如果使用同一个邮件注册，那不会有问题，但是假如用的是不同的邮件注册账号，这就需要生成不同的ssh文件并为其配置相应的域名。
2.生成一个SSH-Key
$ ssh-keygen -t rsa -C &amp;quot;youremail@email.com&amp;quot;//自己git账号对应的邮箱

如若一路enter，你会得到：
id_rsa
id_r...]]></description><category></category></item><item><title><![CDATA[LeetCode系列：3 Longest Substring Without Repeating Characters]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/83754492</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/83754492</guid><author>myinclude</author><pubDate>Fri, 16 Nov 2018 15:46:49 +0800</pubDate><description><![CDATA[Q：Given a string, find the length of the longest substring without repeating characters.
Example 1:

Input: &amp;amp;amp;amp;quot;abcabcbb&amp;amp;amp;amp;quot;
Output: 3 
Explanation: The answer is &amp;amp;amp;amp;quot;abc&amp;amp;amp;amp;quot;, with the]]></description><category></category></item><item><title><![CDATA[LeetCode系列：2	Add Two Numbers]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/83752590</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/83752590</guid><author>myinclude</author><pubDate>Mon, 05 Nov 2018 17:01:59 +0800</pubDate><description><![CDATA[Q：You are given two non-empty linked lists representing two nonnegative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return ...]]></description><category></category></item><item><title><![CDATA[LeetCode系列：1	 Two Sum]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/83616478</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/83616478</guid><author>myinclude</author><pubDate>Thu, 01 Nov 2018 17:49:41 +0800</pubDate><description><![CDATA[Q：Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same...]]></description><category></category></item><item><title><![CDATA[iOS实战之从左往右自动填充布局页面]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/79841036</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/79841036</guid><author>myinclude</author><pubDate>Sat, 07 Apr 2018 13:53:36 +0800</pubDate><description><![CDATA[这里主要讲的就是控件宽度可变时的计算：

方法一： 
这里使用一个宽度可变的Button，宽度不变的两个Label从左往右依次排布来测试。这里使用三组组合，每一组都用一个UIView包裹。

首先为了测试，Button的标题，依次为：



NSArray *btnTitle = @[@&quot;我是一个长标题，很长很长很长很长的标题&quot;,@&quot;我是短标题&quot;,@&quot;标题&quot;];

titleLB的文本：



t...]]></description><category></category></item><item><title><![CDATA[iOS笔记之UIButton的UIEdgeInsetsMake使用详解]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/79841008</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/79841008</guid><author>myinclude</author><pubDate>Sat, 07 Apr 2018 13:49:40 +0800</pubDate><description><![CDATA[1、UIEdgeInsetsMake介绍

首先简单介绍一下UIEdgeInsetsMake 
引用：UIEdgeInsetsMake使用详解的图片和讲解，再加上自己的理解与实现

先看定义



typedef struct UIEdgeInsets { 
  CGFloat top, left, bottom, right; // specify amount to inset (positi...]]></description><category></category></item><item><title><![CDATA[iOS实战之调起QQ加群页和临时会话页]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/79840055</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/79840055</guid><author>myinclude</author><pubDate>Sat, 07 Apr 2018 11:40:38 +0800</pubDate><description><![CDATA[很简单的两个功能，不过都需要先将QQ加入info.plist白名单中

LSApplicationQueriesSchemes

mqqOpensdkSSoLogin 
mqzone 
mqq 
mqqapi 
mqqopensdkapiV3 
mqqopensdkapiV2 
mqqapiwallet 
mqqwpa 
mqqbrowser 

按需求加就好了。



跳转到QQ加群页：



...]]></description><category></category></item><item><title><![CDATA[iOS开发之Runtime初探]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/73481003</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/73481003</guid><author>myinclude</author><pubDate>Tue, 20 Jun 2017 10:24:53 +0800</pubDate><description><![CDATA[一：基础概念RunTime简称运行时,就是系统在运行的时候的一些机制，其中最主要的是消息机制。 
对于C语言，函数的调用在编译的时候会决定调用哪个函数，编译完成之后直接顺序执行，无任何二义性。 
OC的函数调用成为消息发送。属于动态调用过程。在编译的时候并不能决定真正调用哪个函数（事实证明，在编 译阶段，OC可以调用任何函数，即使这个函数并未实现，只要申明过就不会报错。而C语言在编译阶段就会报错）。]]></description><category></category></item><item><title><![CDATA[iOS五种页面传值方式]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/53011168</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/53011168</guid><author>myinclude</author><pubDate>Wed, 02 Nov 2016 19:36:39 +0800</pubDate><description><![CDATA[页面传值是很常用的一个东西，这里介绍比较常用的五种：属性传值，block传值，代理传值，单例传值，通知传值。 
（一）属性传值  
实践方案：第二个界面中的lable显示第一个界面textField中输入的文本 
实践步骤： 
首先我们建立一个RootViewControllers和一个DetailViewControllers（detail页面的label显示root页面textField输入的内]]></description><category></category></item><item><title><![CDATA[iOS开发之NSDictionary与NSMutableDictionary]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/52817423</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/52817423</guid><author>myinclude</author><pubDate>Fri, 14 Oct 2016 17:07:29 +0800</pubDate><description><![CDATA[NSDictionary不可变字典

1、[NSDictionary dictionaryWithObjectsAndKeys:..]: 使用键值对儿直接创建字典对象，结尾必需使用nil标志结束。 
2、[NSDictionary initWithObjectsAndKeys:..]:使用键值对儿初始化字典对象，结尾必需使用nil标志结束。 
3、[dictionary count]: 得到字典的...]]></description><category></category></item><item><title><![CDATA[iOS开发之UILabel(富文本)]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/52816217</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/52816217</guid><author>myinclude</author><pubDate>Fri, 14 Oct 2016 15:21:47 +0800</pubDate><description><![CDATA[1、常见的属性及说明NSFontAttributeName  //字体
NSParagraphStyleAttributeName  //段落格式 
NSForegroundColorAttributeName  //字体颜色
NSBackgroundColorAttributeName  //背景颜色
NSStrikethroughStyleAttributeName  //删除线格式
NSUnd]]></description><category></category></item><item><title><![CDATA[布局之extendedLayout与sizeToFit]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/52681770</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/52681770</guid><author>myinclude</author><pubDate>Tue, 27 Sep 2016 16:19:53 +0800</pubDate><description><![CDATA[iOS 7以后在ViewController里面引进了一系列属性用于管理页面布局。 
 extendedLayout有几个相似的参数：edgesForExtendedLayout 
automaticallyAdjustsScrollViewInsets 
extendedLayoutIncludesOpaqueBars下面是Apple官方提供的文档解释，看过之后还是觉得太过于抽象，于是用代码来实验]]></description><category></category></item><item><title><![CDATA[iOS开发之CocoaPods使用]]></title><link>https://blog.youkuaiyun.com/myinclude/article/details/52638380</link><guid>https://blog.youkuaiyun.com/myinclude/article/details/52638380</guid><author>myinclude</author><pubDate>Fri, 23 Sep 2016 15:02:00 +0800</pubDate><description><![CDATA[CocoaPods安装使用教程与常见详情可以查看下列两篇博客： 
最新Mac OS X 10.11.1 安装cocoapods及使用详解 
CocoaPods的安装使用和常见问题不过看别人的是这样，但是到了自己身上有可能又是另一番光景。我来简单说说自己的安装体验：sudo gem install cocoapods这个需要访问墙外，所以我们通过换源的方式解决这个问题。 
安装步骤： 
（1） 
$]]></description><category></category></item></channel></rss>