Objective-C基础

1.C语言面向过程,OC面向对象

2.第一个OC程序

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
    }
    return 0;
}

1)import引入头文件可以防止重复包含

2)Foundation/Foundation.h文件包含了很多头文件,引入这个等于把OC的库文件都引过来了

3)@autoreleasepool

4)NSLog与printf比较

NSLog自动换行,printf不会

NSLog会输出时间等项目信息,printf不会输出调试信息

NSLog函数的参数是一个NSString对象,printf是一个字符串常量指针

NSLog打印字符串用%@,NSString *Str1=@"ancc";NSLog(@"%@",str1);printf用%s

3.@""代表字符串

4.文档注释

/**

*

**/

5.增强型for循环

6.类的定义

//
//  main.m
//  OC1
//
//  Created by fanyafang on 15/10/30.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

#pragma mark Person类
@interface Person : NSObject
{
    @public
    int _age;
    NSString *_name;
}
    -(void)getAge;

@end


@implementation Person
    -(void)getAge{
        NSLog(@"dddd");
    }
@end

#pragma mark 

int main(int argc, const char * argv[]) {
    @autoreleasepool {
Person *p=[Person new]; p->_age=10; NSLog(@"%d",p->_age);

      [p getAge];

    }
    return 0;
}

7.内存的理解

代码区:存放类定义,加载一次

堆区:存放实例变量,保存了代码区类的地址

栈区:存放对象

8.NSString的用法:

1)创建字符串的方法

NSString *asstring=@"This is a String!";

NSString *s=[NSString new];

NSString *imgName=[NSString stringWithFormat:@"xxxxxxxx%02d.jpg",i];//格式化创建字符串

NSString *s2=[[NSString alloc] initwithString:s1];//用一个已经存在的字符串创建一个新的字符串

2)输出一个字符串

NSLog(@"%@",asstring);

3)字符串长度计算方法

C语言中用strlen函数

OC中用NSUInterger len=[s1 length];//NSUInterger无符号长整型

1个汉字按1个长度计算

9.OC的多文件开发

头文件和类实现文件分开编写,用import包含

10.类方法的学习

11.匿名类

使用匿名类调用类方法:[[Car new] stop];

[Car new]等价于[[Car alloc]init]

匿名类的优点:可以简化代码,方便方法的调用;缺点:匿名对象实例化后只能正确的使用成员变量一次。

 12.get-set方法的编写

13.对象之间的关系:

组合(葡萄) 依赖(一个对象的方法参数是另一个对象) 关联(拥有,一个类的成员是另一个类的对象)

13.OC中没有重载,类的方法不能同名

14.static的用法

1)在方法中延长变量的生命周期

2).h中定义的实例变量不能定义为static

3)不能用static修饰方法

4)在实现类中定义全局static变量,只在当前文件中有效

5)在接口类中定义全局static变量,只在当前文件中有效

15.self的使用

1)对象方法中,调用另一个对象方法

2)在类方法中,调用另一个类方法

3)修饰变量-在set方法中,形参与实例变量名称相等,用self取实例变量

原文地址:https://www.cnblogs.com/fanglove/p/4922882.html