今年的秋季课程,我选修了IOS程序设计。虽然现在IOS编程都在主推用Swift语言,但是老师说起码这几年市面上90%+的APP还是用OC写的,因此上课的内容还是OC的相关知识。不过我们老师上课的速度有些快,OC的基础语法我还不怎么懂,于是去找了一些教程辅助学习,做了一些笔记,有空就上传到博客里和大家分享啦。不对的地方请大家指出哦~

定义类:
类的声明: (类名的每个单词的首字母大写)
@interface 类名: NSObject
{
         属性  (属性名一定要以下划线开头,规范)
                  (不允许在声明属性的时候对其初始化)
}
方法的声明
@end
类的实现:
@implementation
     方法的实现
@end

对象的创建:
类名 *对象名 = [ 类名  new ];
如何使用对象:
创建新对象   Person *p1 = [Person new];
(1)如何访问对象属性:
     默认情况下,对象属性是不允许被外界直接访问的
     属性声明前加上@public 可以被外界访问
(2)访问属性方式
     p1 -> name   或者   (*p1).name
10月16日

方法的声明实现调用:
无参数的方法:
(1)声明:
     a 位置  在@interface大括号之外
     b 语法: - (返回值类型)方法名称; 
              -(void)run;
(2)实现:复制放在@implementation中,将分号去掉,加大括号
(3)调用:[对象名  方法名];
带1个参数的方法:
(1)声明:
     a 位置  
     b 语法:-(返回值类型)方法名:(形参类型)形参名称;
                  -(void)eat : (NSString * )foodname ;
             注意:这个方法的名字叫做  eat:   (不要漏掉:)
(2)实现
(3)调用:[对象名  方法名:实参];
               [ p1  eat:@"红烧排骨"];
带多个参数的方法:
(1)声明:
     a 位置  
     b 语法:-(返回值类型)方法名:(形参类型)形参名称1 : (形参类型)形参名称2 ;
                  - (int ) sum : ( int )num1 :( int )num2;
            注意:方法的名称是sum: : (注意是冒号+空格+冒号)
(2)实现
(3)调用:[对象名  方法名:实参1 :实参2 :实参3.....];
                    [ p1  sum:10 :20];
总结:方法头中的数据类型都要用小括号括起来。
带参数方法声明规范:
(1)如果方法只有一个参数,那么方法名最好叫做 xxxWith 或者  xxxWithxxx 
        -(void)eatWith : (NSString * )foodname ;
(2)如果方法有多个参数 ,建议写成
     方法名With : (参数类型)参数名称 and:(参数类型)参数名称 and:(参数类型)参数名称;
      - (int)sumWith : ( int )num1 and:( int )num2;
         注意方法名字为:sumWith : and:
         调用: [p1 sumWith :10 and :20];
OC中的方法和C语言中函数的不同:
① 语法不同
② 定义位置不一样
③ OC中方法调用需要创建对象才能调用哦
复习:1、OC在C的基础上
               a  增加了面向对象的语法
               b  将c语言复杂的语法封装的更加简单
2、a、 #import 指令   无论import多少次,最终都只是包含1次
      b、 NSLog函数 
           ①自动换行
           ②会输出一些其他的调试信息
       c、 NSString 
          字符串常量前必须加一个@ 才是OC字符串
            NSString 只能存储OC字符串   NSString *str = @"jack";
       d、数据类型    BOOL   id   nil  SEL  block
10月17日 
1、内存中的五大区域    
        栈 (存储局部变量)
        堆  (手动申请的字节空间,使用  malloc  calloc  realloc函数)
        BSS段(未被初始化的全局变量、静态变量)
        数据段(常量区) 存放已经被初始化的全局变量  静态变量  常量数据
        代码段  存储代码
2、类加载:在程序运行期间,当某个类   第一次被访问到的时候,会将这个类存储到内存中的代码段区域,这个过程叫做类加载。直到程序运行结束的时候才会被释放。 
10月18日
1、Person *p1   会在栈内存中申请1块空间,声明一个Person类型的指针变量p1
2、[Person new]    真正在内存中创建对象的其实是这句代码
            new做的事情:
               a  在堆内存中申请1块合适大小的空间
               b  在这个空间内根据类的模板创建对象
                    这个类模板中定义了声明属性,就把这些属性依次放在对象中
                    除了类模板中定义的属性,还有一个isa指针,指向对象所属的类在的代码段中的地址
               c  初始化对象的属性
                    基本数据类型  赋值为0
                    C语言指针类型  赋值为NULL 
                    OC指针类型  赋值为nil
3、注意:  对象中只有属性,没有方法的。对象中包含了定义的数学和isa指针,isa指向一个类对象,这个类对象包含了Objective-C对象的一些信息,包括方法调度表,实现了什么协议等等。那为什么对象中只有属性没有方法呢?是因为每一个对象的方法实现都是一模一样的,没有必要为每个对象都保存一个方法。
10月20日
1、NULL和nil    
     a、只能作为指针变量的值,代表这个指针不指向内存中的任何1块空间;NULL其实是一个宏,就是0  。NULL和nil其实是一样的
     b、建议 C指针用NULL,OC类指针用nil
     c、类指针为nil时,访问该指针指向的对象属性,会报错;但调用该指针指向的对象的方法,运行不会报错。
2、分组导航标记
可以从No Selection里面跳转到所需的代码段处
(1)使用#pragma mark 分组名         
(2)使用#pragma mark -             (形成分割线)
(3)使用#pragma mark - 分组名

转载于:https://www.cnblogs.com/kqZhu/p/6876174.html

Object-C 学习笔记(IOS程序设计课程)01相关推荐

  1. Object C学习笔记22-#define 用法

    上一篇讲到了typedef 关键字的使用,可以参考文章 Object C 学习笔记--typedef用法 .而在c中还有另外一个很重要的关键字#define. 一. #define 简介 在C中利用预 ...

  2. Object C学习笔记12-集合

    Object C学习笔记12-集合 2014-03-08 17:25 by 贺臣, 262 阅读, 0 评论, 收藏, 编辑 这里讲到的集合是指Set集合,其实Array也是一种类型的集合.在Obje ...

  3. NoSQL学习笔记之MongoDB-01初识NoSQL

    NoSQL学习笔记之MongoDB-01初识NoSQL 一.什么是NoSQL NoSQL的出现背景: 随着互联网的发展,数据量激增,传统的集中式关系型数据库已经无法满足互联网海量数据的存储及使用需求. ...

  4. 逐梦旅程学习笔记 DirectX开发入门01:应用程序基本框架

    本文属于<逐梦旅程>学习笔记系列的DirectX篇,与此系列的Windows/GDI并列. 本系列不打算深入研究DirectX而只是简单介绍DirectX中应用最广泛的部分:Direct3 ...

  5. 云计算大数据学习中心:python课程 01

    云计算大数据学习中心:python课程 我的第一节python课程 学习内容: 一.计算机的组成. 硬件:输入输出设备.CPU.存储设备. 软件:系统软件(操作系统.驱动程序).应用程序. 二.编程语 ...

  6. 操作系统学习笔记-01-1.1课程概述

    此课程来自于b站操作系统_清华大学(向勇.陈渝),博客作为博主手打,当作参考笔记,回头复习223 1.1课程概述 课程简介 什么是操作系统 为什么学习以及如何学习操作系统 操作系统的实例,历史和结构介 ...

  7. 深入研读“ReDet: A Rotation-equivariant Detector for Aerial Object Detection”学习笔记

    ReDet: A Rotation-equivariant Detector for Aerial Object Detection Jiaming Han∗, Jian Ding∗, Nan Xue ...

  8. Object C学习笔记20-结构体

    在学习Object C中的过程中,关于struct的资料貌似非常少,查阅了C方面的资料总结了一些学习心得! 一. 定义结构 结构体是一种数据类型的组合和数据抽象.结构体的定义语法如下: struct ...

  9. Object C学习笔记11-数组

    在Object C也提供了类似C#中的Array数组对象,在Object C中使用NSArray 来创建数组:但是在Object C中NSArray 只能存放对象类型的指针,不能存放int,char, ...

最新文章

  1. 第十五届全国大学生智能汽车竞赛 信标组亮灯顺序和次数
  2. 在Github上搭建Jekyll博客和创建主题
  3. 【需求工程】需求工程
  4. echarts做企业关系图谱_建立良好客户关系 做有温度的企业
  5. 被坑;剪头发(普通修剪)180元!你会怎么办?
  6. ios 判断数字大小_iOS开发积累2
  7. 销售99绝招 成功没商量
  8. SPSS统计分析学习记录
  9. c语言社团管理系统实验报告,社团管理系统C语言实现
  10. WEBMAX函数 动态模糊特效【官方教程】
  11. 梁宁-产品思维30讲-小米的效率革命
  12. 又是一年春来到,祝大家有个好的开始。
  13. Java8 根据身份证号获取年龄
  14. 用PS来制作背景透明的图片
  15. 链接库 -L -l -I -i的作用及区别
  16. STM32--Code、RO-data、RW-data和ZI-data
  17. AD绘制第一块STM32最小系统板 (二)AD16修改原理图图纸大小
  18. 微信小程序通过云函数生成带参数的小程序码
  19. 【学习笔记17】buu [安洵杯 2019]easy_web
  20. cobbler批量装机系统centos 6.4下安装配置

热门文章

  1. (5)Oracle基础--约束
  2. 微信公众平台消息接口开发(27)彩票查询
  3. android学习之路1:前车之鉴之开发环境搭建
  4. 电脑中毒了怎么办 电脑中病毒的解决方法
  5. TrashFlash卡是什么
  6. 想旷工被单位开除领取失业金,可是单位不但不开除还给交社保,该怎么办?
  7. 初二是学生阶段的分水岭吗?家长该做哪些准备?
  8. 蹲下突然站起来总是会头晕,是什么原因?
  9. 现在实体店的生意越来越不好干
  10. 为什么有些小老板,做了一辈子,还是没办法发展大?