首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【iOS】我的Objective-C学习笔记

3.分类可以重新实现原来类中的方法,但是会覆盖掉原来的方法,会导致原来的方法没法再使用 4.方法调用的优先级:分类(最后参与编译的分类优先) --> 原来类 --> 父类 6.Category...2.当第一次使用某个类时,就会调用当前类的+initialize方法 3.先加载父类,再加载子类(先调用父类的+load方法,再调用子类的+load方法) 先初始化父类,再初始化子类(先调用父类的+...例子:李明杰/iOS开发进阶视频教程/23-再次重构.mp4/00:10:30 12.protocol 协议 1.协议的定义 @protocol 协议名称 // 方法声明列表...B的方法中: 不能直接访问_age,必须使用子类中的get和set方法来访问它。...中无法使用TAB键对多行代码进行缩进。

15630
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Objective-C中NSInvocation的使用

    , 但只传递2个参数, 这样方法的第三个参数会自动取我们传的第二个的值 [self performSelector:@selector(printStr1:Str2:Str3:) withObject...97184] Second argument 2017-01-06 11:55:07.399 BezierPathDemo[1203:97184] Third argument NSInvocation使用时有下面三个地方要注意下...1、如果调用的方法不存在 //此时我们应该判断方法是否存在,如果不存在这抛出异常 if (signature == nil) { //aSelector为传进来的方法 NSString *info =...//此处不能通过遍历参数数组来设置参数,因为外界传进来的参数个数是不可控的 //因此通过numberOfArguments方法获取的参数个数,是包含self和_cmd的,然后比较方法需要的参数和外界传进来的参数个数...,因此可以推断返回值的具体类型

    74920

    iOS:关于WWDC2020-Objective-C运行时的改进

    视频中介绍了三个变化: 首先是数据结构的变化, Objective-C 运行时会使用它们来追踪类。 其次是 Objective-C 方法列表的变化。...“ro”代表只读,它包括像类名词,方法,协议,和实例变量的信息。Swift 类和 Objective-C 类共享这一数据结构,所以每个 Swift 类也有这些数据结构。...macOS 可以选择唤出 dirty memory,但因为 iOS 不使用 swap,所以 dirty memory 在iOS中的代价很大。...只有 Swift 类会使用 demangled name 字段,并且 Swift 类并不需要这一字段,除非有东西访问它们的 Objective-C 名称时才需要。...二、Objective-C方法列表的变化 每一个类都附带一个方法列表,当你在类上编写新方法时,它就会被添加到列表中。运行时使用这些列表来解析消息发送。 每个方法都包含三个信息。

    50220

    Objective-C语法基础之Category的使用

    但是Objective-C提供了一种特别的方式来扩展类,叫Catagory,可以动态的为已经存在的类添加新的行为。这样可以保证在类的原来的基础上,较小的改动就可以增加需要的功能。...使用Category对类进行扩展时,不需要访问其源代码,也不需要创建子类,这样我们可以扩展系统提供的类。...Category使用简单的方式,实现了类的相关方法的模块化,把不同的类方法分配到不同的分类文件中。 通过一个简单的例子看看Category如何使用。...implementation Student - (void)hello { NSLog(@"大家好,我是Young"); } @end 开始创建分类Category 001、command + n,选择Object-C...WechatIMG35.jpeg 那的Category的使用场景: 1、类包含了很多个方法实现,而这些方法需要不同团队的成员来实现 2、当你在使用基础类库中的类时,你不想继承这些类而只想添加一些方法时

    42920

    Objective-C Runtime 的一些基本使用

    在上一篇文章《Objective-C Runtime详解》中我们探讨了Runtime的基本原理,这篇文章我们将总结一下Runtime的一些基本使用 目录 查询方法 给分类添加属性 更换代码的实现方法...和《Effective Objective-C 2.0》中提到的: When the compiler saw that an object contained C++ objects, it would...上面代码中的第二个参数写的是 _cmd,等价于@selector(name) Objective-C的编译器在编译后会在每个方法中加两个隐藏的参数: 一个是_cmd,当前方法的一个SEL指针。...字典转属性 将字典转化为模型,是在我们iOS开发中最为常用的技能。...iOS的模型框架如JSONModel,MJExtension,MJExtension等皆是利用了runtime,将字典转为模型,不过兼顾的细节更多。下面我们来实现一个简易的字典转模型框架。

    1.2K80

    Objective-C使用位运算设计可复选的枚举

    使用位运算设计可复选的枚举 一、枚举使用的一个小例子         在软件开发中,枚举是我们会经常会用到的一种编程方式,通过枚举,可以使我们的代码更具可读性与统一性。...通常情况下,我们会通过typedef来定义一种枚举的类型来使用。...例如: typedef enum {     para1,     para2,     para3 }myEnum; 我们可以在函数的参数中来使用它: -(void)testEunm:(myEnum)...三、可复选的枚举属性         如果熟悉iOS的开发,你会发现系统很多的枚举类型都是可以复选的,例如视图的拉伸模式,json的解析属性等等,这不仅使代码可读性优化,也更加简便了一些选项设置的代码。...这种位运算的枚举在官方sdk中被广泛使用,能够有效的简化代码和提高代码的可读性。 专注技术,热爱生活,交流技术,也做朋友。 ——珲少 QQ群:203317592

    53820

    iOS_Effective Objective-C 20 编写高质量iOS与OS X代码的52个有效方法

    三读Objective-C2.0 笔记~(作为一个OC开发者,必读之书) gitbook地址 一、熟悉Objective-C 1、了解Objective-C语言的起源 ​ Objective-C在C...Objective-C是C的“超集”(superset),所以C语言中的所有功能在编写Objective-C代码时依然适用。因此必须同时掌握C与OC这两门语言的核心概念,方能写出高效的OC代码来。...bug 11、理解objc_msgSend的作用 可以看这篇: iOS_Objective-C 消息发送(消息查找 及 消息转发)过程中的 一二、OC中的消息和消息查找 ​ 上面文章讲述的自描述了部分消息的调用过程...12、理解消息转发机制 ​ 可以看这篇: iOS_Objective-C 消息发送(消息查找 及 消息转发)过程中的三、消息转发 要点: 若对象无法响应某个选择子,则进入消息转发流程 通过运行期的动态方法解析功能...iOS指应用程序启动时。load方法中使用其他类时不安全的(如:其他类又用到了当前类,则无法正确加载了)。整个应用程序在执行load方法时都会阻塞(不要在里面等待锁/加锁)。

    1.1K40

    Objective-C三种定时器CADisplayLink NSTimer GCD的使用

    是指两次selector触发之间间隔几次屏幕刷新,默认值为1,也就是说屏幕每刷新一次,执行一次selector,这个也可以间接用来控制动画速度 从头文件来看CADisplayLink的使用还是挺简单的,...Connection模式 定义:NSConnectionReplyMode(Cocoa) 描述:处理NSConnection对象相关事件,系统内部使用,用户基本不会使用。...在Cocoa应用程序中,默认情况下Common Modes包含default modes,modal modes,event Tracking modes.可使用CFRunLoopAddCommonMode...通常我们使用这个属性来做计时器的暂停与恢复。...关于invalid方法 我们知道NSTimer使用的时候如果不注意的话,是会造成内存泄漏的。原因是我们生成实例的时候,会对控制器retain一下。

    2.4K31

    全新Swift从入门到进阶实战探探iOS APP

    它被描述为“Objective-C without the C”,意味着它在保持Objective-C核心功能的同时,提供了更简洁、更现代的语法2。...这使得学习Swift成为iOS开发者或计划成为iOS开发者的首要任务2。Swift语言与Objective-C的比较有哪些关键差异?...Swift语言与Objective-C的关键差异主要体现在以下几个方面:语法和简洁性:Swift的语法设计更加现代化,简洁且易于理解。它不使用指针,并且在数据结构和语法上进行了改进78。...其高效的数据处理能力和对复杂界面的良好支持使其成为现代iOS应用开发中的重要工具18。开发iOS应用程序时,如何有效地使用Swift和UIKit框架进行用户界面设计?...在开发iOS应用程序时,有效地使用Swift和UIKit框架进行用户界面设计(UI设计)是提高开发效率和产品质量的关键。我们可以总结出一些策略和建议。

    36110

    iOS中的单例你用对了么?Objective-C中的单例Swift中的单例

    最近看到一些github上的单例使用,别人的用法,有一些思考,然后写demo测试了下,就这个简单的单例也有一些坑呢,希望能给他人一些提醒。...Objective-C中的单例 我们通常在OC中实现一个单例方法都是这样: static HLTestObject *instance = nil; + (instancetype)sharedInstance...[3579:81998] c6890> 很明显,通过三种方式创建出来的是不同的实例对象,这就违背了单例类有且仅有一个实例的定义。...HLTestObject: 0x7f8a5b458450> height = 10, arrayM = 0x7f8a5b459770, object = 0x7f8a5b4544e0, 可以看到,尽管使用的是同一个示例...ARC的方式管理内存,如果你还在使用MRC(这也太不与时俱进了)。

    71530

    iOS学习——iOS 整体框架及类继承框架图

    每一个子框架都是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源,共享资源库定义应用程序可以调用的函数和方法。...通知 归档和序列化 表达式和条件判断 Objective-C语言服务 对于Foundation框架中的一些基本类的使用方法详情参见:iOS开发系列—Objective-C之Foundation框架  ...),表混淆了)     应用程序可以通过三种方式使用UIKit创建界面:   在用户界面工具(interface Buidler)从对象库里 拖拽窗口,视图或者其他的对象使用。  ...3.2 Objective-C的优点   Objective-C语言有C++ Java等面向对象的特点,那是远远不能体现它的优点的。Objective-C的优点是它是动态的。...(为了区分两个对象,我把前面提到的对象叫Objective-C对象),包括Objective-C对象的方法调度表,实现了什么协议等 等。

    3.6K70

    苹果在 iOS 15 中使用了 Swift 和 SwiftUI

    一个例子是我开发的应用程序 Clutters,我在那里使用 Swift、SwiftUI、Objective-C 和 C,使用最合适的编程语言来解决特定Dev问题。...在本文中,包含一行 Swift 代码的应用程序将被视为使用了 Swift 。 您将看到 Objective-C 和 C++ 被提及,但您可能会注意到 Objective-C++ 的缺失。...这里使用的方法无法真正检测到使用 Objective-C++ 构建的二进制文件。此类二进制文件被视为同时使用 Objective-C 和 C++ 。 最后,你应该对这个分析持保留态度。...请再次注意,一个二进制文件可以被多次计算,所以这个图中的二进制数据的总和大于二进制总数: 使用各种编程语言的二进制文件数量 在 iOS 15 的所有二进制文件中: 89% 使用了 Objective-C...Objective-C 仍然是 iOS 的核心,不会很快消失。 苹果对 Swift 的使用进展得比以往任何时候都快。去年,Swift 超过了C。今年,Swift 越来越接近 C++。

    2.3K30
    领券