文档章节

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

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

     组合关系(强调组成)

     依赖关系

     关联关系(强调拥有)

     继承关系

     

© 著作权归作者所有

上一篇: OC语言-继承
下一篇: OC语言-类与对象
盘盘的灰灰
粉丝 0
博文 31
码字总数 24142
作品 0
深圳
私信 提问
OC对象,自动释放池,OC与C语言的区别

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

老人与海l
2018/08/22
0
0
iOS封装C语言P Thread

需求:iOS封装C语言P Thread以实现开始,结束,暂停,继续,指定线程名称,任务等的需求。 阅读前提: 了解p thread基本用法 了解iOS端线程基本概念 了解线程加锁基本原理 GitHub地址(附代码)...

__小___东邪___
2018/12/04
0
0
windows平台,实现录音功能详解

音频处理分为播放和录音两类。对这些处理,微软提供了一些列函数,称之为Waveform Functions。这篇文章讨论录音功能。会对微软提供的函数做简单说明,并对这些函数封装成c++类,再进一步封装...

源之缘
2018/11/09
0
0
SWIG入门7: 如何用Python封装C语言的字符串处理函数

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

costaxu
2012/11/10
1K
0
Python的C/C++扩展——Python的C语言接口

文章首发于我的技术博客:你可以在上面看到更多的Python教程和python爬虫 Python语言最初是用C语言实现的一种脚本语言,后来被称为CPython,是因为后来又有其它语言实现的Python,比如Pytho...

呆木木人儿
03/11
40
0

没有更多内容

加载失败,请刷新页面

加载更多

VMware vSphere ESXi主机的访问控制

在vShpere中,访问ESXi主机的途径很多,如下: ESXi DCUI ESXi Shell ESXi SSH ESXi Host Client vCenter --> vSphere web client / vSphere Client VMware vSphere ESXi主机的访问控制,除了......

大别阿郎
20分钟前
2
0
大神讲解CGI、FastCGI和PHP-FPM关系图解

参考资料 概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM:http://www.nowamagic.net/librarys/veda/detail/1319 php中fastcgi和php-fpm是什么东西:https://www.zybuluo.com/phper/note/50231 ......

网络小虾米
29分钟前
2
0
《DNS攻击防范科普系列3》 -如何保障 DNS 操作安全

引言 前两讲我们介绍了 DNS 相关的攻击类型,以及针对 DDoS 攻击的防范措施。这些都是更底层的知识,有同学就来问能否讲讲和我们的日常操作相关的知识点,今天我们就来说说和我们日常 DNS 操...

Mr_zebra
30分钟前
2
0
zk中ServerCnxn

实现接口Stats, Watcher 内部类 DisconnectReason CloseRequestException EndOfStreamException(流关闭) 属性 方法 getSessionTimeout 获取session失效时间 sendResponse 发送回复数据 se......

writeademo
35分钟前
3
0
如何将 Redis 用于微服务通信的事件存储

来源:Redislabs 作者:Martin Forstner 翻译:Kevin (公众号:中间件小哥) 以我的经验,将某些应用拆分成更小的、松耦合的、可协同工作的独立逻辑业务服务会更易于构建和维护。这些服务(也...

中间件小哥
38分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部