<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Vigiles的编程基础]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/Vigiles</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Vigiles]]></copyright><item><title><![CDATA[C27_OC17-日期类型NSDate]]></title><link>https://blog.csdn.net/Vigiles/article/details/25553051</link><guid>https://blog.csdn.net/Vigiles/article/details/25553051</guid><author>Vigiles</author><pubDate>Sun, 11 May 2014 17:03:09 +0800</pubDate><description><![CDATA[#import 

int main(){
    // 0时区当前时间
    NSDate * date = [NSDate date];  // 代码运行到这一行的时间
    
    // 比date晚5秒的时间
    NSDate * date2 = [NSDate dateWithTimeInterval:5 sinceDate:date];
    
	// 从1970年开始到d]]></description><category></category></item><item><title><![CDATA[C26_OC16-OC类型包装]]></title><link>https://blog.csdn.net/Vigiles/article/details/25552981</link><guid>https://blog.csdn.net/Vigiles/article/details/25552981</guid><author>Vigiles</author><pubDate>Sun, 11 May 2014 17:01:16 +0800</pubDate><description><![CDATA[1.NSNumber
#import 

int main(){
    /** NSNumber包装int、float、double、... **/
    NSNumber * num1 = [NSNumber numberWithInt:10];
    NSNumber * num2 = [NSNumber numberWithFloat:453.5];
    NSNumber * n]]></description><category></category></item><item><title><![CDATA[C25_OC15-OC集合类]]></title><link>https://blog.csdn.net/Vigiles/article/details/25552745</link><guid>https://blog.csdn.net/Vigiles/article/details/25552745</guid><author>Vigiles</author><pubDate>Sun, 11 May 2014 16:58:56 +0800</pubDate><description><![CDATA[1.NSArray数组



2.NSMutableArray可变数组



3.NSSet
#import 

int main(){
    // NSSet无序存储
    NSSet * set1 = [NSSet set]; // 空
    NSSet * set2 = [NSSet setWithObjects:@"aaaa", @"bbbb", @"cc]]></description><category></category></item><item><title><![CDATA[C24_OC14-NSString字符串]]></title><link>https://blog.csdn.net/Vigiles/article/details/25552615</link><guid>https://blog.csdn.net/Vigiles/article/details/25552615</guid><author>Vigiles</author><pubDate>Sun, 11 May 2014 16:53:12 +0800</pubDate><description><![CDATA[1.NSString和文件操作



2.NSMutableString]]></description><category></category></item><item><title><![CDATA[C23_OC13-Foundation内置的常用结构体]]></title><link>https://blog.csdn.net/Vigiles/article/details/25552233</link><guid>https://blog.csdn.net/Vigiles/article/details/25552233</guid><author>Vigiles</author><pubDate>Sun, 11 May 2014 16:46:11 +0800</pubDate><description><![CDATA[这些都是typedef struct XXX定义的。可能需要添加CoreGraphics框架。
1.NSRange区间
如同Groovy中的range。NSRange是一个结构体，即struct。



2.NSPointd/CGPoint点-坐标
NSPointd、CGPoint是一样的，但CGPoint跨平台。



3.NSSize/CGSize大小尺寸



]]></description><category></category></item><item><title><![CDATA[C22_OC12-protocol协议]]></title><link>https://blog.csdn.net/Vigiles/article/details/25423227</link><guid>https://blog.csdn.net/Vigiles/article/details/25423227</guid><author>Vigiles</author><pubDate>Fri, 09 May 2014 19:51:38 +0800</pubDate><description><![CDATA[类似Java的接口，用于声明若干方法。一个父类遵守了此协议（实现此接口），子类也默认遵守。
NewFile，OSX，Cocoa，Objective-C Protocol。
1.基本使用
1）协议
//
//  父协议：MyProtocol.h
//

#import 

/** 
 协议关键字 协议名 
 
 OC中的基协议和基类重名，都是NSObject
**/
]]></description><category></category></item><item><title><![CDATA[C21_OC11-block代码块]]></title><link>https://blog.csdn.net/Vigiles/article/details/25423171</link><guid>https://blog.csdn.net/Vigiles/article/details/25423171</guid><author>Vigiles</author><pubDate>Fri, 09 May 2014 19:46:59 +0800</pubDate><description><![CDATA[#import 

typedef int (^BlockProduct) (int, int);  // 乘积

typedef int (^BlockQuotient) (int, int);    // 商

int main()
{
    // 局部变量
    int nm = 99;
    // 使用__block标注变量，这样就可以让Block操作了
    __block in]]></description><category></category></item><item><title><![CDATA[C20_OC10-内存管理]]></title><link>https://blog.csdn.net/Vigiles/article/details/25422743</link><guid>https://blog.csdn.net/Vigiles/article/details/25422743</guid><author>Vigiles</author><pubDate>Fri, 09 May 2014 19:43:31 +0800</pubDate><description><![CDATA[每个对象都有一个隐式的int类型计数器，占4个字节内存。对象诞生（使用alloc或new、copy创建对象）时默认计数为1；每增加一个调用，计数器加1；当计数器为0时，对象销毁，内存回收。
retain 计数器+1
release  计数器-1
retainCount 计数器值

销毁方法：dealloc。如果计数器值为0，则调用此方法销毁对象。
如果重写此方法，则最后须调用[supe]]></description><category></category></item><item><title><![CDATA[C19_OC09-方法的类型SEL]]></title><link>https://blog.csdn.net/Vigiles/article/details/25082385</link><guid>https://blog.csdn.net/Vigiles/article/details/25082385</guid><author>Vigiles</author><pubDate>Mon, 05 May 2014 23:09:06 +0800</pubDate><description><![CDATA[#import 

@interface Persion : NSObject
- (void) test;
@end

@implementation Persion
- (void) test{
    // _cmd是一个SEL类型的常量，保存当前方法地址。每个方法都内置这个属性
    // 如同： SEL _cmd = @selector(test);
    NSLog(@"还是SEL]]></description><category></category></item><item><title><![CDATA[C18_OC08-load、initialize、description]]></title><link>https://blog.csdn.net/Vigiles/article/details/25082291</link><guid>https://blog.csdn.net/Vigiles/article/details/25082291</guid><author>Vigiles</author><pubDate>Mon, 05 May 2014 23:08:24 +0800</pubDate><description><![CDATA[/**
 前文中的“类”，就是“类对象”
    类对象的类型叫Class-类（看到这个单词，似乎有种Java的亲切感）
 前文中的“对象”，就是“实例对象”
    实例对象的类型叫类
 程序启动时，会加载全部的类（原类）和分类（增强类），加载完毕会执行一次且仅一次各类的load
 程序启动后，当第一次调用某个类（类对象）时，会执行一次且仅一次其initialize方法
**/

#import]]></description><category></category></item><item><title><![CDATA[C17_OC07-Category分类：增强模式]]></title><link>https://blog.csdn.net/Vigiles/article/details/25081881</link><guid>https://blog.csdn.net/Vigiles/article/details/25081881</guid><author>Vigiles</author><pubDate>Mon, 05 May 2014 23:03:54 +0800</pubDate><description><![CDATA[category：分类、类别、类目。
1.基本使用
1）普通类：



2）增强类：
/*
 文件：Jackman+Wolverine.h
 项目：ocstudy
 
 作者：vigiles
 日期：14-5-4
 Copyright (c) 2014年 itcast. All rights reserved.
 */

/**
 Category意为类别、分类，]]></description><category></category></item><item><title><![CDATA[C16_OC06-id关键字和构造方法]]></title><link>https://blog.csdn.net/Vigiles/article/details/25081667</link><guid>https://blog.csdn.net/Vigiles/article/details/25081667</guid><author>Vigiles</author><pubDate>Mon, 05 May 2014 22:56:44 +0800</pubDate><description><![CDATA[1.id关键字

2.构造方法]]></description><category></category></item><item><title><![CDATA[C15_OC05-@property和@synthesize]]></title><link>https://blog.csdn.net/Vigiles/article/details/24938457</link><guid>https://blog.csdn.net/Vigiles/article/details/24938457</guid><author>Vigiles</author><pubDate>Sat, 03 May 2014 23:09:12 +0800</pubDate><description><![CDATA[运行XCode5.1，创建项目，OSX版，CommanLineTool。完成后，新建文件，OSX，Cocoa，ObjectC-Class。
以下测试在终端使用cc命令会报警，但运行无错。
1.隐式setter和getter的自动完成
1）h文件



2）m文件



3）main




2.预定义属性和隐式getter、setter
1）h文件
#impor]]></description><category></category></item><item><title><![CDATA[C14_OC04-面向对象三大特性]]></title><link>https://blog.csdn.net/Vigiles/article/details/24885889</link><guid>https://blog.csdn.net/Vigiles/article/details/24885889</guid><author>Vigiles</author><pubDate>Fri, 02 May 2014 20:29:48 +0800</pubDate><description><![CDATA[封装、继承、多态
1.封装
1）set/get方法
#import 

@interface Persion : NSObject
    {
        //@public － 对象实例可直接访问的
        //面向对象：内部结构不应暴露
        //成员变量应尽量使用set/get方法操作
        int age;
    }
    - (]]></description><category></category></item><item><title><![CDATA[C13_OC03-面向对象]]></title><link>https://blog.csdn.net/Vigiles/article/details/24833533</link><guid>https://blog.csdn.net/Vigiles/article/details/24833533</guid><author>Vigiles</author><pubDate>Thu, 01 May 2014 09:42:59 +0800</pubDate><description><![CDATA[1.从类到对象的调用




2.对象和自定义函数



3.OC的函数和对象方法
#import 
/*
 方法的声明必须写在main之前－使用之前
 */
@interface Persion : NSObject
    /*
     OC对象的方法只能在定义类时声明。属于面向对象的范畴
     以＋、－开头
     返回值类型使用()包裹
   ]]></description><category></category></item><item><title><![CDATA[C12_OC02-OC较C的不同]]></title><link>https://blog.csdn.net/Vigiles/article/details/24833461</link><guid>https://blog.csdn.net/Vigiles/article/details/24833461</guid><author>Vigiles</author><pubDate>Thu, 01 May 2014 09:35:17 +0800</pubDate><description><![CDATA[1.关键字
@catch、@class、@dynamic、@end、@finally、@implementation、@interface、@optional、@private、@property、@protected、@protocol、@public、@required、@selector、@synthesize、@throw、@try、
id、self、super、_cmd、__bloc]]></description><category></category></item><item><title><![CDATA[C11_OC01-ObjectC-HelloWorld]]></title><link>https://blog.csdn.net/Vigiles/article/details/24833209</link><guid>https://blog.csdn.net/Vigiles/article/details/24833209</guid><author>Vigiles</author><pubDate>Thu, 01 May 2014 09:29:21 +0800</pubDate><description><![CDATA[环境搭建：http://my.oschina.net/vigiles/blog/141689]]></description><category></category></item><item><title><![CDATA[C10_C语言-extern和static]]></title><link>https://blog.csdn.net/Vigiles/article/details/24467507</link><guid>https://blog.csdn.net/Vigiles/article/details/24467507</guid><author>Vigiles</author><pubDate>Fri, 25 Apr 2014 13:44:40 +0800</pubDate><description><![CDATA[1.关于函数
1）在头文件定义函数

#ifndef _MYH_H_
#define _MYH_H_

#include 

extern void funcMY();
//声明自定义函数

extern void funcMY(){
printf("funcMY：外部函数，内外皆可访问\n");
}

#endif

2）在源文件定义函数

#include]]></description><category></category></item><item><title><![CDATA[C09_C语言-typedef类型自定义]]></title><link>https://blog.csdn.net/Vigiles/article/details/24467259</link><guid>https://blog.csdn.net/Vigiles/article/details/24467259</guid><author>Vigiles</author><pubDate>Fri, 25 Apr 2014 13:36:40 +0800</pubDate><description><![CDATA[预处理语句 #define A B，表示编译阶段把后文中全部的A换成B。
typedef为复杂的声明定义简单的别名，如：typedef AAAAA B，可理解为运行阶段把全部的B换成AAAAA。
1.各种使用
#include 

typedef int MyInt;
//1.类型定义，给int取一个别名-同义词
typedef MyInt MyNewInt;
//1.给自定义类型]]></description><category></category></item><item><title><![CDATA[C08_C语言-宏、条件编译、文件包含]]></title><link>https://blog.csdn.net/Vigiles/article/details/24466813</link><guid>https://blog.csdn.net/Vigiles/article/details/24466813</guid><author>Vigiles</author><pubDate>Fri, 25 Apr 2014 13:31:27 +0800</pubDate><description><![CDATA[1.宏
1）不带参数的宏
/*
 * 代码编译为0和1之前执行的语句叫预处理语句。
 * 预处理指令以#定义
 * 第一种：文件包含，#include
 * 第二种：宏定义，#define。#define A B，表示把后文中全部的A换成B
 * 宏的生命：无论定义于何处，从定义的一行开始，直到文件结尾，除非遇到#undef。
 * 1.不带参宏。
 * 2.带参的宏。
 * ]]></description><category></category></item></channel></rss>