精华内容
下载资源
问答
  • iOS oc 扩展(Extension)

    2021-07-09 11:29:39
    文章目录1.一般用扩展做什么?2.扩展的特定 1.一般用扩展做什么? 2.扩展的特定

    返回上级目录:iOS面试专题一

    1.一般用扩展做什么?

    在这里插入图片描述

    2.扩展的特定

    在这里插入图片描述

    3.创建扩展文件

    在这里插入图片描述
    在这里插入图片描述

    4.代码示例

    • XYPerson.h
    #import <Foundation/Foundation.h>
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface XYPerson : NSObject
    
    @end
    
    NS_ASSUME_NONNULL_END
    
    • XYPerson.m
    #import "XYPerson.h"
    
    @implementation XYPerson
    
    - (void)myTest{
        NSLog(@"扩展中的 myTest");
    }
    
    @end
    
    • XYPerson+XYtest.h
    #import "XYPerson.h"
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface XYPerson ()
    
    - (void)myTest;
    
    @end
    
    NS_ASSUME_NONNULL_END
    
    • ViewController.m
    #import "ViewController.h"
    #import "XYPerson+XYtest.h"
    
    @interface ViewController ()<UITableViewDelegate>{
        NSString *_name;
    }
    
    @property(strong,nonatomic)NSString *myTitle;
    
    - (void)test;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        UITableView *tableView = [UITableView new];
        tableView.delegate = self;
    
        [self test];
        
        XYPerson *person = [XYPerson new];
        [person myTest];
    }
    
    - (void)test{
        NSLog(@"test");
    }
    
    @end
    

    打印:
    2021-07-09 16:11:24.567256+0800 Category同名方法[5101:190873] test
    2021-07-09 16:11:24.567497+0800 Category同名方法[5101:190873] 扩展中的 myTest

    5. 不能给系统的类添加扩展

    在这里插入图片描述

    展开全文
  • oc扩展

    2015-02-22 21:15:57
    封装的特性就是暴露公共接口给外边调用,C++通过public定义...OC里面类扩展类似protected和private的作用。 1.类扩展是一种特殊的类别,在定义的时候不需要加名字。下面代码定义了类Things的扩展。 @interface Things

    封装的特性就是暴露公共接口给外边调用,C++通过public定义公共方法提供给外面调用,protected和private定义的方法只能在类里面使用,外面不能调用,若外面调用,编译器直接报错,对于变量也同理。OC里面类扩展类似protected和private的作用。

    1.类扩展是一种特殊的类别,在定义的时候不需要加名字。下面代码定义了类Things的扩展。

    @interface Things ()

    {

        NSInteger thing4;

    }

    @end

    2.类扩展作用

    1)可以把暴露给外面的可读属性改为读写方便类内部修改。

    在.h文件里面声明thing2为只读属性,这样外面就不可以改变thing2的值。

    ?
    1
    2
    3
    4
    5
    6
    7
    @interface Things : NSObject
      
    @property ( readonly , assign) NSInteger thing2;
      
    - ( void )resetAllValues;
      
    @end

     在.m里面resetAllValues方法实现中可以改变thing2为300.

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    @interface Things ()
      
    {
      
         NSInteger thing4;
      
    }
      
    @property ( readwrite , assign) NSInteger thing2;
      
    @end
      
    @implementation Things
      
    @synthesize thing2;
      
    - ( void )resetAllValues
      
    {
      
         self .thing2 = 300;
      
         thing4 = 5;
      
    }

     

    2)可以添加任意私有实例变量。比如上面的例子Things扩展添加了NSInteger thing4;这个实例变量只能在Things内部访问,外部无法访问到,因此是私有的。

    3)可以任意添加私有属性。你可以在Things扩展中添加@property (assign) NSInteger thing3;

    4)你可以添加私有方法。如下代码在Things扩展中声明了方法disInfo方法并在Things实现了它,在resetAllValues调用了disInfo

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    @interface Things ()
    {
         NSInteger thing4;
    }
    @property ( readwrite , assign) NSInteger thing2;
    @property (assign) NSInteger thing3;
    - ( void ) disInfo;
    @end
      
    @implementation Things
    @synthesize thing2;
    @synthesize thing3;
      
    - ( void ) disInfo
    {
         NSLog (@ "disInfo" );
    }
      
    - ( void )resetAllValues
    {
         [ self disInfo];
         self .thing1 = 200;
         self .thing2 = 300;
         self .thing3 = 400;
         thing4 = 5;
    }
    展开全文
  • OC源文件扩展

    2019-10-07 10:03:42
    常见的文件扩展扩展名 含义 扩展名 含义 .c C语言源文件 .mm Objective-C++源文件 .cc、.cpp C++源文件 .pl Perl源文件 .h 头文件 .o Object(编译后的)文件 .m ...

    常见的文件扩展名

    扩展名含义扩展名含义
    .cC语言源文件.mmObjective-C++源文件
    .cc、.cppC++源文件.plPerl源文件
    .h头文件.oObject(编译后的)文件
    .mObjective-C源文件  

     

     

     

     

     

     

     

     

    Objective-C源文件使用.m作为文件名的最后两个字符(称作扩展名)。上面表格给出了常见的文件扩展名。

    PS:表格来源于《Objective-C 程序设计(第6版)》

     

    转载于:https://www.cnblogs.com/PaulpauL/p/5751737.html

    展开全文
  • oc中的扩展

    2015-05-27 16:27:12
    OC类的扩展总结如下: 共有4个:  1、子类 subClass 作用:  可以使用类的继承来增添父类的变量和方法。 写法:在.h文件中 @interface Student : Person  2、类别(Category) 作用:  可以增添父类的功

    对OC类的扩展总结如下: 共有4个:

               1、子类 subClass 作用:

                              可以使用类的继承来增添父类的变量和方法。 写法:在.h文件中 @interface Student : Person

               2、类别(Category) 作用:

                             可以增添父类的功能,但不能定义变量。多用于不知道源码的情况下,对父类进行扩展。 写法:在.h和.m文件中,文件名为”父类名+分类名”格式。 在@interface @implementation 后 “父类名(分类名) " 

               3、延展(Extension )作用:

                            定义私有方法。可以隐藏不对外公布的方法。多用于隐藏一些中间步骤的方法。 

                                    写法:在.m文件中 @implementation 前实现 @interface Person(){     NSString * _age;} - (void)aa; @end如此这样,就定义了私有方法。 

                4、协议protocol 作用:

                           可以实现类似多继承的方法。一个类遵守多个协议。写法:协议只有.h文件,定义了方法。

                                  @required //默认是必须实现的 

                                              -(void)method1;  

                                              - (void)method2; 

                                  @optional //可以选择实现  

                                           - (void)method3; 

    展开全文
  • OC列表-扩展

    千次阅读 2015-01-10 23:40:08
    // main.m ...// OC列表-扩展 // // Created by Goddog on 15/1/10. // Copyright (c) 2015年 Goddog. All rights reserved. // /*  1.扩展相当于匿名类别  2.扩展则用于临时对某个类的接...
  • OC 类的扩展

    2014-09-29 14:43:25
    类的扩展 一 类目(Category) 对现有的类添加新的方法,并且不需要创建子类,不需要访问原有类的源代码. 1.作用  1)可以扩展别人的类,可以作为子类的替代方法。  2)把同一类的代码放到多个文件中。 2.形式  1)...
  • 扩展IDE——为翻译OC头文件增加编写模板OCImport
  • @interface NSValue : NSObject <NSCopying, NSSecureCoding>
  • OC-类别与扩展

    2015-12-06 21:04:13
    OC-类别与扩展类别 类别可以让你在现有的类中添加额外的方法,而不必子类化它,也不必访问类的源代码。 使用类别来扩展类比使用子类来扩展类轻松多了 一个给定的类,可以具有多个类别,但类别不能重名 类别中...
  • OC类的扩展总结

    2016-06-02 01:11:07
    OC类的扩展总结如下: 共有4个: 1、子类 subClass 作用:可以使用类的继承来增添父类的变量和方法。 写法:在.h文件中 @interface Student : Person 2、分类 Category 作用:可以增添父类的功能,但不...
  • OC中的分类与类扩展

    千次阅读 2015-03-20 14:39:52
    OC中,对于已有的类进行扩展,我们有两种方式: 1、在原始类的定义中,进行代码扩展。 2、通过继承的方式,扩展子类。 3、使用分类的方式。 第一、二种方式不用多说,第三种方式则是OC中比较有特色的功能。
  • 先看张截图吧 002.PNG (27.1 KB) 2008-6-10 23:56 ...不止是扩展这一个Web标签, 可根据...恩 简单的OC扩展应用, 域管理员可以使用策略, 统一为内部PC加入该信息, 可参考http://bbs.winos.cn/thread-36124-1...
  • 封装了oc和 swift的 2个UIView的虚线外框的类扩展,可以设置线的长度,间隙长度,虚线宽度,虚线颜色,外框圆角边框,一行代码调用非常方便
  • OC中的类扩展

    2015-12-21 11:07:00
    扩展 是在原有类的基础扩展一个新的属性和对象方法 但是方法的实现还是要写在原有的声明中,不然是不会被访问到的 类扩展可以扩展在新的头文件中,然后在主函数中导入。 利用类扩展可以变相的实现属性的私有化...
  • OC中类别(Category)是什么? Category类别是Objective-C语言中提供的一个灵活的类扩展机制。类别用于在不获悉、不改变原来代码的情况下往一个已经存在的类中添加新的方法,只需要知道这个类的公开接口,而不需要知道...
  • // OC07_类的扩展 // // Created by dllo on 15/7/24. // Copyright (c) 2015年 Clare. All rights reserved. // #import #import "NSString+StringMethod.h" #impor

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,112
精华内容 8,444
关键字:

oc扩展