<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/NOLA</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; NOLA]]></copyright><item><title><![CDATA[UIWebView 加载本地的html文件]]></title><link>https://blog.csdn.net/NOLA/article/details/25773373</link><guid>https://blog.csdn.net/NOLA/article/details/25773373</guid><author>NOLA</author><pubDate>Wed, 14 May 2014 09:50:28 +0800</pubDate><description><![CDATA[- (void)viewDidLoad
{

    [super
viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
   
NSString *appPath = 
NSHomeDirectory(); //获取app路径
   
NSBundle *b]]></description><category></category></item><item><title><![CDATA[说的很不错的关于程序员文章。]]></title><link>https://blog.csdn.net/NOLA/article/details/25722093</link><guid>https://blog.csdn.net/NOLA/article/details/25722093</guid><author>NOLA</author><pubDate>Tue, 13 May 2014 16:40:14 +0800</pubDate><description><![CDATA[不要再让自己精疲力竭，这样不会让你成为更好的程序员。做你爱做的事，爱上更多的兴趣。你将会变的更优秀。]]></description><category></category></item><item><title><![CDATA[iOS写文件日志实现]]></title><link>https://blog.csdn.net/NOLA/article/details/25371753</link><guid>https://blog.csdn.net/NOLA/article/details/25371753</guid><author>NOLA</author><pubDate>Fri, 09 May 2014 10:31:01 +0800</pubDate><description><![CDATA[#import 




#define HHCLog(formatter,...) [[HCLog shareInstance]write:formatter,##__VA_ARGS__]




@interface HCLog : NSObject
+(HCLog*)shareInstance;
-(BOOL)write:(NSString *)format,...;]]></description><category></category></item><item><title><![CDATA[iOS观察者模式的实现]]></title><link>https://blog.csdn.net/NOLA/article/details/20705201</link><guid>https://blog.csdn.net/NOLA/article/details/20705201</guid><author>NOLA</author><pubDate>Fri, 07 Mar 2014 13:43:07 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[IOS 单例或者单件实现]]></title><link>https://blog.csdn.net/NOLA/article/details/19490307</link><guid>https://blog.csdn.net/NOLA/article/details/19490307</guid><author>NOLA</author><pubDate>Wed, 19 Feb 2014 15:48:30 +0800</pubDate><description><![CDATA[///单件实现
////.h文件
@interface singleton:NSObject
{
    static singleton* _singleton;
}
-
+(singleton*)GetInstance; //类方法
@end

///.m文件
@implemetation singleton
staitc singleton::_singleton=n]]></description><category></category></item><item><title><![CDATA[memento备忘录 (C++)实现]]></title><link>https://blog.csdn.net/NOLA/article/details/19398877</link><guid>https://blog.csdn.net/NOLA/article/details/19398877</guid><author>NOLA</author><pubDate>Tue, 18 Feb 2014 10:06:11 +0800</pubDate><description><![CDATA[// memento.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include 

//memento模式的C++实现,改模式实现状态回滚，类似于文本编辑器的undo,或者数据的回滚功能。
//有相关应用的都可以通过memento模式来实现

using namespace std;

class iMememto;
cla]]></description><category></category></item><item><title><![CDATA[关键字volatile有什么含义？并给出三个不同例子？]]></title><link>https://blog.csdn.net/NOLA/article/details/18809929</link><guid>https://blog.csdn.net/NOLA/article/details/18809929</guid><author>NOLA</author><pubDate>Mon, 27 Jan 2014 11:03:15 +0800</pubDate><description><![CDATA[一个定义为volatile的变量是说这个变量可能会被 意想不到的改变，这样，编译器就不会去假设这个变量的值了。精确地说就是，优化器在用到
这个变量时必须每次都小心地重新读取这个变量的值，而不是使用保存在寄存器里的备份。
下面是volatile变量的几个例子：
并发设备的硬件寄存器（如：状态寄存器）
一个中断服务子程序中会访问到的非自动变量（non-automatic variables）]]></description><category></category></item><item><title><![CDATA[堆和栈的区别？]]></title><link>https://blog.csdn.net/NOLA/article/details/18809363</link><guid>https://blog.csdn.net/NOLA/article/details/18809363</guid><author>NOLA</author><pubDate>Mon, 27 Jan 2014 10:13:00 +0800</pubDate><description><![CDATA[管理方式：对于栈来讲，是由编译器自动管理，无需我们手动控制；对于堆来说，释放工作由程序员控制，容易memory leak。
申请大小：
栈：
在windows下，栈是向低地址扩展的数据结构，是一块连续的内存区域。这句话的意思
是栈顶地址和栈的最大容量是系统预先规定好的，在windows下，栈的大小是2M（也有的说是1M，总之是在编译时就确定的常数），
如果申请的空间超过栈的剩余空间时，将]]></description><category></category></item><item><title><![CDATA[object-c，线程和进程的区别？]]></title><link>https://blog.csdn.net/NOLA/article/details/18809233</link><guid>https://blog.csdn.net/NOLA/article/details/18809233</guid><author>NOLA</author><pubDate>Mon, 27 Jan 2014 09:45:22 +0800</pubDate><description><![CDATA[进程和线程都是有操作系统所体会的程序运行的基本单元，系统利用该基本单元实现系统对应的并发性。
进程和线程的主要区别在于他们是不同的操作系统资源管理方式，而线程只是一个进程中不同的执行路径。线程有自己的
堆栈和局部变量，但线程之间没有独立的地址空间，一个线程死掉就等于整个进程死掉，所以多进程的程序要比
多线程的程序健壮，但在进程切换时，耗费资源较大，效率要差一些。但对于一些要求同时进行并且又要]]></description><category></category></item><item><title><![CDATA[#import 和#include的区别，@class代表什么？]]></title><link>https://blog.csdn.net/NOLA/article/details/18809189</link><guid>https://blog.csdn.net/NOLA/article/details/18809189</guid><author>NOLA</author><pubDate>Mon, 27 Jan 2014 09:38:38 +0800</pubDate><description><![CDATA[@class一般用于头文件中需要声明该类的某个实例变量的时候用到，在m文件中还需要使用
#import
而#improt比起#include的好处就是不会引起重复包含]]></description><category></category></item><item><title><![CDATA[objective-c有私有的方法吗？私有变量呢？]]></title><link>https://blog.csdn.net/NOLA/article/details/18809055</link><guid>https://blog.csdn.net/NOLA/article/details/18809055</guid><author>NOLA</author><pubDate>Mon, 27 Jan 2014 09:32:50 +0800</pubDate><description><![CDATA[objective-c类里面的方法只有两种，静态方法和实例方法。这似乎就是不完整的面向对象了，
按照oo的原则就是一个对象只暴露有用的东西。如果没有私有方法的话，对于一些小范围的代码重用就不那么顺手了
在类里面声明一个私有方法
@interface Controller:NSObjec{NSString* something;}
+(void)thisIsAStaticMethod;
-]]></description><category></category></item><item><title><![CDATA[Objective c有多继承吗？没有的话用什么代替？]]></title><link>https://blog.csdn.net/NOLA/article/details/18808991</link><guid>https://blog.csdn.net/NOLA/article/details/18808991</guid><author>NOLA</author><pubDate>Mon, 27 Jan 2014 09:24:18 +0800</pubDate><description><![CDATA[cocoa中所有的类都是nsobject的子类
多继承在这里是用protocal委托代理来实现的
你不用去考虑繁琐的多继承，虚基类的概念
ood的多态特性在obj-c中通过委托实现。]]></description><category></category></item><item><title><![CDATA[类别的作用？]]></title><link>https://blog.csdn.net/NOLA/article/details/18797981</link><guid>https://blog.csdn.net/NOLA/article/details/18797981</guid><author>NOLA</author><pubDate>Sun, 26 Jan 2014 17:02:51 +0800</pubDate><description><![CDATA[有时我们需要在一个已经定义好的类中增加一些方法，而不想去重新写该类。比如当
工程已经很大，代码量比较多，或者类中已经抱住很多方法，已经有其他代码调用了该
类创建对象并使用该类的方法时，可以使用类别对该类的扩充新的方法。
注意：类别只能扩充方法，而不能扩充成员变量。
委托（举例）
委托代理（degegate）,顾名思义，把某个对象要做的事情委托给别的对象去做。那么别的对象
就是这个对象的]]></description><category></category></item><item><title><![CDATA[简述索引计数]]></title><link>https://blog.csdn.net/NOLA/article/details/18797759</link><guid>https://blog.csdn.net/NOLA/article/details/18797759</guid><author>NOLA</author><pubDate>Sun, 26 Jan 2014 16:29:24 +0800</pubDate><description><![CDATA[retain值 = 索引计数（reference counting）
NSArray对象会retain值加一，任何数组中的对象。当NSArray被卸载（delloc）的时候，所有数组中的对象会
被执行一次释放（retain值减一）。不仅仅是NSArray，任何收集类（collection classes）都执行类似操作。例如NSDictionary,甚至
UINavigationContro]]></description><category></category></item><item><title><![CDATA[内存管理autorelease,retain,copy,assign的set方法和含义？]]></title><link>https://blog.csdn.net/NOLA/article/details/18796851</link><guid>https://blog.csdn.net/NOLA/article/details/18796851</guid><author>NOLA</author><pubDate>Sun, 26 Jan 2014 15:50:18 +0800</pubDate><description><![CDATA[1.你初始化（alloc/init）的对象，你需要释放（release）它。例如：
NSMutableArray aArray=[[NSArray alloc]init];
后，需要
[aArray release];
2,你的retain或者copy的，你需要释放它。例如：
[aArray retain];
后需要
[aArray release];
3,被传递（assign）的]]></description><category></category></item><item><title><![CDATA[id,nil代表什么？]]></title><link>https://blog.csdn.net/NOLA/article/details/18796645</link><guid>https://blog.csdn.net/NOLA/article/details/18796645</guid><author>NOLA</author><pubDate>Sun, 26 Jan 2014 15:42:14 +0800</pubDate><description><![CDATA[id
id和void*并非完全一样。在上面的代码中，id是指向struct objc_object的一个指针，这个意思基本上说，
id是一个指向任务一个继承了object(或者NSObject)类的对象。需要注意的是id是一个指针，所有你在使用id的时候
不需要加星号。比如id foo=nil则定义了一个指针，这个指针指向另外一个指针，被指向的这个指针指向NSObject的一个
子类。
]]></description><category></category></item><item><title><![CDATA[kvc和kvo区别，分别在什么情况下使用？]]></title><link>https://blog.csdn.net/NOLA/article/details/18796383</link><guid>https://blog.csdn.net/NOLA/article/details/18796383</guid><author>NOLA</author><pubDate>Sun, 26 Jan 2014 15:35:54 +0800</pubDate><description><![CDATA[KVC(key-value-coding)
KVO(key-value-Observing)
理解KVC 和KVO（键-值-编码与键-值-监看）
当通过KVC调用对象时，比如：[self valueForKey:@"somekey"]时，程序会自动试图通过几种
不同的方法解析这个调用。首先查找对象是否带有somekey这个方法，如果没有找到，会继续查找对象是否
是否嗲有somekey和个]]></description><category></category></item><item><title><![CDATA[怎么理解MVC,在Cocoa中MVC是怎么实现？]]></title><link>https://blog.csdn.net/NOLA/article/details/18796145</link><guid>https://blog.csdn.net/NOLA/article/details/18796145</guid><author>NOLA</author><pubDate>Sun, 26 Jan 2014 15:22:07 +0800</pubDate><description><![CDATA[MVC设计模式考虑三种对象：模型对象，视图对象，控制器对象。模型对象特别的需要知识和专业技能，它们
负责保有应用程序的数据和定义操作数据的逻辑。视图对象知道如何显示应用程序的模型数据，而且可能允许用户对其
进行编辑。控制器对象是应用程序的视图对象和模型对象之间的协调者。]]></description><category></category></item><item><title><![CDATA[viewController的didreceivememorywarning是在什么时候调用？默认的操作时什么？]]></title><link>https://blog.csdn.net/NOLA/article/details/18796011</link><guid>https://blog.csdn.net/NOLA/article/details/18796011</guid><author>NOLA</author><pubDate>Sun, 26 Jan 2014 15:11:10 +0800</pubDate><description><![CDATA[当程序接到内存告警时viewController将会收到这个消息：didReceiveMemoryWarning从ios3.0开始，不需要重载这个函数，
把释放内存的代码放到viewDidUnload中去。
这个函数的默认实现是：检查cotroller是否可以安全释放它的view（这里加粗的view指的是controller的view属性），比如view本身
没有superview并且可以很]]></description><category></category></item><item><title><![CDATA[OpenWrt网络配置(1)]]></title><link>https://blog.csdn.net/NOLA/article/details/12086533</link><guid>https://blog.csdn.net/NOLA/article/details/12086533</guid><author>NOLA</author><pubDate>Fri, 27 Sep 2013 14:48:22 +0800</pubDate><description><![CDATA[网络配置文件放在/etc/config/network里面,被分为各个接口配置。接口配置不是以太网、wifi配置就是一个包含多个接口的“桥”。它看起来就是这样的：
 config interface     "lan"
      option ifname    "eth0" 

      option proto     "static"
      option ipaddr]]></description><category></category></item></channel></rss>