文档章节

C语言-封装

盘盘的灰灰
 盘盘的灰灰
发布于 2016/08/06 10:45
字数 945
阅读 8
收藏 0
  • 如何处理异常.

    1). 目的: 为了让程序在执行的时候如果发生了异常而不崩溃 而是继续往下执行.

    2). 语法:

    @try

     {

      }

    @catch(NSException *ex)

     {

     }

     将有可能发生异常的代码放在@try中.

    当@try中的代码在执行的时候.如果发生了异常.不会崩溃,而是会立即跳转到@catch中去执行里面的代码.

    当@catch的代码执行完毕之后 结束@try...@catch往下执行.

    如果@try中的代码在执行的时候 没有发生异常. 就会略过@catch往下执行.

    3). 当@try中的代码在执行的时候发生了异常.@try块发生异常的后面的代码不会执行.而是立即转到@catch

  • 调用.

       1). 对象方法: 先创建对象 再通过对象名来调用.

       2). 类方法: 不需要通过对象名来调用 所以如果要调用类方法不需要创建对象.

           而是直接使用类名来调用

           [类名 类方法名];

  • 在类方法中不能直接访问属性.

  • 在类方法中也不能通过self直接调用当前类的其他的对象f方法

        因为对象方法只能通过对象来调用 而这个时候没有对象.

  • NSString最常用的类方法.

        1). + (instancetype)stringWithUTF8String:(const char *)nullTerminatedCString;

            instanceType 作为返回值 代表返回的是当前这个类的对象.

            作用:将C语言的字符串转换为OC字符串对象.

        2). + (instancetype)stringWithFormat:(NSString *)format, ...  使用频率100分.

            作用: 拼接1个字符串对象.使用变量或者其他数据拼接成OC字符串.

             int age = 19;

             NSString *name = @"小明";       

             //@"大家好我叫xx 我的年龄是xx"

             NSString *str =  [NSString stringWithFormat:@"大家好,我叫%@,我今年%d岁",name,age];

             NSLog(@"str = %@",str);

     ----str = 大家好,我叫小明,我今年19岁----
  • 最常用的对象方法

 1). length方法 返回值为NSUInteger 其实就是unsigned long

 2). 得到字符串中指定下标的字符.

        - (unichar)characterAtIndex:(NSUInteger)index;

        返回值是unichar 其实就是unsinged short 占据2个字节.

        如果要输出unichar变量的值使用%C 钛金眼睁大 这是大写的C 

        %c

3). 判断两个字符串的内容是否相同.

        a. 判断两个字符串的内容是否相同 不要用==去判断  因为这样有可能会出问题.

        b. 判断相等的方式.

           - (BOOL)isEqualToString:(NSString *)aString;

           所以,判断两个字符串是否相等 应该使用这个方法区判断 才会得到正确的结果.

4).比较字符串的大小.

        - (NSComparisonResult)compare:(NSString *)string;

        完全可以使用int类接收结果. 因为返回值是1个枚举.

        返回值如果是 -1 说明小于

                   0  等于

                  1   大于.

  • 匿名对象:

1). 匿名对象只能使用1次. 

2). 每次创建匿名对象都是不同的对象 。

  • 为类提供1个方法,这个方法专门为属性赋特定范围值.这个方法我们叫做setter(对象方法,有参数,无返回值)

  • 这么一写,我们确实可以在为对象的属性赋值的时候做1个逻辑验证了.

         但是问题就是 在外界无法取出属性的值了.

         那就再写1个方法,专门用来返回属性的值.这个方法我们叫做getter方法.(对象方法,没有参数,有返回值)

  • 只读封装与只写封装.

    只读封装: 为属性封装的时候 只提供getter 不提供setter

    只写封装: 为属性封装的时候.只提供setter 不提供getter

  • 对象与对象之间的关系.

     组合关系(强调组成)

     依赖关系

     关联关系(强调拥有)

     继承关系

     

© 著作权归作者所有

共有 人打赏支持
盘盘的灰灰
粉丝 0
博文 31
码字总数 24142
作品 0
深圳
OC对象,自动释放池,OC与C语言的区别

在C语言中,编程都是面向过程的编程,每一个代码块都严格按照从上至下的顺序执行,在代码块之间同样也是这样, 但是在OC中往往不是这样,OC和C++、java等语言一样,都是面向对象的编程语言,...

老人与海l
08/22
0
0
SWIG入门7: 如何用Python封装C语言的字符串处理函数

在C语言中,字符串处理是每天都要面对的问题。我们都知道C语言中其实并没有一种原生的字符串类型,‘字符串’在C语言里只是一种特殊的以'0'结尾的字符数组。因此,如何将C语言与更高层次的P...

costaxu
2012/11/10
0
0
一、C语言概述

说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 为什么iOS开发要先...

长平狐
2013/03/28
109
1
学习ios思想

学了3个月ios,自认为学的不咋样。 ios 的编程思想,与c语言完全不同, ios面向对象,考虑对象实现的效果,与c语言一步一步完全不同。 因为ios 封装了方法。

aerial
2016/01/15
219
0
小朋友学Online Judge(9):判断成绩等级

题目 http://oj.jzxx.net/problem.php?id=1013 解法一:C程序 分析: (1)C语言中,没有string这种类型。 C++中,有string类型,表示字符串。 Java中,有String类型,表示字符串。 (2)既然...

翡翠森林Z
2017/11/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL面试题集锦

什么是数据库索引?索引有哪几种类型?什么是最左前缀原则?索引算法有哪些?有什么区别? 索引是对数据库表中一列或多列的值进行排序的一种结构。一个非常恰当的比喻就是书的目录页与书的正...

老道士
27分钟前
0
0
使用 LogStash 归集日志

elastic 官网: https://www.elastic.co/ 为了便于集中查看多台主机的业务日志,使用 Filebeat, Redis, Logstash的方式进行收集: (1) Filebeat 监控日志文件的变化, 将新增部分写入redis中, 每...

ouhoo
31分钟前
0
0
java序列化(六) - protostuff序列化

添加依赖 <dependency> <groupId>io.protostuff</groupId> <artifactId>protostuff-core</artifactId> <version>1.5.9</version> </de......

晨猫
37分钟前
0
0
Ceph学习笔记1-Mimic版本多节点部署

特别说明: 本方法也可以用于单节点部署,只部署一个Monitor(只是会形成单点故障而已),最低要求是使用两个分区创建2个OSD(因为默认最小副本是2);如果不需要使用CephFS,则可以不部署M...

LastRitter
40分钟前
0
0
923. 3Sum With Multiplicity - LeetCode

Question 923. 3Sum With Multiplicity Solution 题目大意: 给一个int数组A和一个目标值target,求满足下面两个条件的组合个数,其中i,j,k分别为数组的索引 i<j<k target = A[i] + A[j] + A[k...

yysue
41分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部