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

在objective-c/cocoa框架中编写c代码被认为是不好的做法?

在Objective-C/Cocoa框架中编写C代码被认为是不好的做法,原因如下:

  1. 不符合框架设计理念:Objective-C/Cocoa框架是苹果公司为开发iOS和macOS应用程序而设计的,它提供了丰富的面向对象的特性和功能。而C语言是一种面向过程的编程语言,与Objective-C/Cocoa框架的面向对象思想不太匹配。直接在Objective-C/Cocoa框架中编写C代码会破坏框架的设计理念和一致性。
  2. 难以维护和调试:Objective-C/Cocoa框架提供了一套强大的工具和调试环境,可以方便地进行代码调试和错误定位。然而,C语言的调试和维护相对困难,不利于开发人员快速定位和解决问题。
  3. 可能引入内存管理问题:Objective-C/Cocoa框架使用了自动引用计数(ARC)来管理内存,而C语言没有这样的机制。如果在Objective-C/Cocoa框架中编写C代码,可能会导致内存管理问题,如内存泄漏或野指针等。
  4. 不利于跨平台开发:Objective-C/Cocoa框架主要用于开发苹果的iOS和macOS应用程序,而C语言是一种通用的编程语言,可以在多个平台上运行。如果在Objective-C/Cocoa框架中编写C代码,将限制应用程序的可移植性和跨平台性。

综上所述,尽量避免在Objective-C/Cocoa框架中编写C代码是一个良好的开发实践。相反,应该充分利用Objective-C/Cocoa框架提供的特性和功能,以更好地开发iOS和macOS应用程序。

相关搜索:为什么在SQL Server中使用游标被认为是不好的做法?在没有实体主体的情况下执行HTTP POST被认为是不好的做法吗?在React Native中使用固定数字设置高度和宽度是否被认为是不好的做法?在xaml中,使用框架,在窗口内显示页面是不好的做法?在Oracle中删除不存在的记录被认为是不好的形式?当在.Net中重复代码来做同样的事情时,这在dbcontext中被认为是不好的做法吗?在SQL表中不断更改行是否被认为是一种糟糕的做法?在构造函数中使用原始指针并打算立即将其包装在智能指针中,这被认为是不好的做法吗?为什么在C++的函数中创建对象是一种不好的做法?在更高的层中编写接口是否被认为是一个好的实践?在同一个div中组合row和col被认为是一种糟糕的做法吗?编写自己的shell代码在处理某些管道时挂起 - 在C中在c#代码中编写SQL查询的最佳实践是什么?在代码优先实体框架MVC c#中连接表的问题在Objective-C (或C)中,这段带有指向布尔值指针的代码是如何工作的?如何防止用户在C和C++项目之间的公共头文件中编写C++代码?如何获得nodejs应用的代码覆盖率,而不必在推荐的框架中编写测试用例?如何编写代码从输入文件中读取单独的行中的输入,并执行此代码在C++中执行的相同操作不确定将代码放在程序中的什么位置。在XCode中如何在触摸时生成圆。(Objective-C)
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

关于Swift

Swift是一种新的建立在C和Objective-C的基础之上用来开发iOS和OS X应用,完全兼容C。 Swift采用了安全的编程模式并增添了现代的功能使编程更容易、更灵活、更有趣。...Swift依 赖深受喜爱的Cocoa和Cocoa Touch框架,对重新想象软件是如何工作来说是一次机会。 Swift被创造已经有好多年了。苹果在此基础上增强了我们现有的编译器,调试器,和框架结 构。...我们简化了使用自动引用计数(ARC)的内存管理技术。我们的框架堆栈,建立在坚实的 Foundation和Cocoa框架基础之上,已经是现代化和标准化的。...Objective-C本身已经采 用了blocks,集合迭代和模块现代的语言技术。多亏了这个基础,我们现在可以引入一个新 语言在未来苹果的软件开发中。...它提供了无缝访问现有Cocoa框架并且可以和Objective-C代码共 存。构建在这个基础上,Swift引入了许多面向过程和面向对象编程语言的新特性。 Swift对新的程序员是友好的。

1.1K20

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

整理自:IOS 整体框架类图值得收藏  一 整体框架 在iOS开发过程中,对iOS整体框架的了解和学习是必不可少的一个环节,今天我们就好好来了解一下iOS的整体框架。...开发一个应用程序就是将需求细致化的代码插入到框架提供的设计中来组合成一个整体完成最终的应用设计。...通知 归档和序列化 表达式和条件判断 Objective-C语言服务 对于Foundation框架中的一些基本类的使用方法详情参见:iOS开发系列—Objective-C之Foundation框架  ...UIKit框架的各个类的简单介绍戳后面的链接:UIKit框架各个类的简要说明  三 Cocoa对象   此处内容全部来源于: IOS 整体框架类图值得收藏 3.1 Objective-C是面向对象的语言...3.2 Objective-C的优点   Objective-C语言有C++ Java等面向对象的特点,那是远远不能体现它的优点的。Objective-C的优点是它是动态的。

3.6K70
  • 更多关于CocoaScript目录

    ---- Sketch插件可以通过Mocha和CocoaScript实现,它允许您使用JavaScript编写的外部脚本使用Objective-C / Cocoa代码。...所以,当你在CocoaScript中编写代码时,你确实在编写JavaScript。 CocoaScript还包含一个桥梁,可让您通过JavaScript访问Apple的Cocoa框架。...访问Cocoa和Sketch API 您可以从CocoaScript访问所有Cocoa和Sketch API。 Objective-C属性的行为与在桥的JavaScript端应该一样。...Objective-C方法作为对象的不透明JavaScript代理的属性公开。 将选择器名称转换为JavaScript属性名称时采取以下步骤: 所有冒号都转换为下划线(最新的下划线是可选的)。...,请查看Mocha README,它确实是完整的(但需要一些Obj-C的概念)。

    1.4K60

    《Motion Design for iOS》(十四)

    Objective-C Objective-C是一种编程语言,于1980年代首次出现,并作为编写NeXT计算机的主要语言受到欢迎。...苹果公司使用Objective-C编写OS X和iOS的所有软件。在最近几年,苹果公司作出了显著的改善让Objective-C更适合新的程序员。...Swift被设计为和已经存在的Cocoa和Cocoa Touch框架协作(苹果公司提供给开发者来创建应用的API库)而且可以和Objective-C在同一个app中共存,但不能在同一个源代码文件中。...我依然使用Objective-C编写我的app,但随着时间流逝,我会至少在新的工程中部分使用Swift。我对Swift中的一些Objective-C没有的高级语言特性非常期待。...本书中的全部动画示例代码都会有Objective-C和Swift两种编写方式,因此你可以理解和观察其区别并自行选择哪一种语言对你的使用更有意义。

    86610

    macOS 应用开发流程

    配置项目: 创建新的 Xcode 项目,配置项目的基本信息,如产品名称、组织标识符等。3.代码编写选择语言: macOS 应用主要使用 Swift 或 Objective-C 语言开发。...4.调试与测试Xcode调试器: 利用 Xcode 的调试器,设置断点、单步执行等,查找并修复代码中的错误。单元测试: 编写单元测试,确保代码的正确性。...关键工具与技术Xcode: 集成开发环境,用于编写、调试和打包 macOS 应用程序。Swift/Objective-C: 开发语言。Interface Builder: 可视化界面设计工具。...Cocoa/Cocoa Touch: 苹果提供的框架,用于构建 macOS 和 iOS 应用程序。Storyboards: 用于定义应用程序的界面和视图控制器之间的关系。...总结macOS 桌面应用开发是一个综合性的过程,涉及多个方面。开发者需要掌握 Xcode 的使用、Swift 或 Objective-C 编程语言、Cocoa 框架等知识。

    20010

    Swift 新语言开发「建议收藏」

    ——(博客园、新浪微博)葛布林大帝 */ 一、Welcome to Swift 1.关于Swift   Swift是一种用于iOS和OS X应用的全新编程语言,它建立在最好的C和Objective-C语言中...Swift的框架建立在坚实的Foundation和Cocoa上。已实现现代化和彻底标准化。...Objective-C本身已经逐步发展到到支持blocks、 collection literals 和modules,使框架採用不中断的现代语言技术。感谢这个基础。...它具有Objective-C命名參数的可读性和动态对象模型的力量,提供了无缝接入现有Cocoa框架和与Objective-C混编的能力。...2.Swift概览 传统建议新语言的第一个程序应该打印“Hello, World”在屏幕上。在Swift里这仅仅须要一行来完毕。   假设你在C或Objective-C语言编写过代码。

    71630

    唐巧的iOS技术博客选摘

    《objc非主流代码技巧》:看开源代码时,总会看到一些大神级别的代码,给人眼前一亮的感觉,多数都是被淡忘的C语言语法,作者在文章中总结了objc写码中遇到的各类非主流代码技巧和一些妙用。...也就是说只有编译器是不够的,还需要一个运行时系统 (runtime system) 来执行编译后的代码。这就是 Objective-C Runtime 系统存在的意义,它是整个OC运行框架的一块基石。...本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机。...网上有很多相关的文章教你如何编写一个简单的 widget,但是却没有一篇适合我们这种纯代码的拥趸。本文介绍了如何用纯代码的方式来构建一个 widget。...《轻松学习 Objective-C 消息转发》:作者在文章中通过一个小例子来讲解什么是消息转发,以及如何消息转发,希望看完这篇文章时大家会彻底的明白 OC 的消息转发机制。

    3.3K60

    Java开发者需要了解哪些常见的开移动开发编程语言排行榜Top 6

    随着企业在最近一段时间调整移动应用到他们的生产力,以及他们跨平台移动设备的快速创新;它需要移动应用程序开发人员使用单一语言和许多的可重用代码为许多不同的平台编写应用程序的多个版本。你有兴趣吗?...随着企业在最近一段时间调整移动应用到他们的生产力,以及他们跨平台移动设备的快速创新;它需要移动应用程序开发人员使用单一语言和许多的可重用代码为许多不同的平台编写应用程序的多个版本。你有兴趣吗?...此外,作为苹果开发框架的一部分,Objective-C是完全融入到所有的iOS和MacOS框架。然而,现在它正慢慢地被一个更强大的称为Swift的语言取代它在苹果生态系统中的地位。...Swift Swift是进入苹果生态系统的最新的编程语言,主要考虑其为苹果最新的API、Cocoa和Cocoa Touch编写代码的流行程度。...即使它是一个为结合Objective-C编写的语言,Cupertino公司明显用它让iOS开发者转向Swift完成编程。

    78310

    iOS中Cocoa框架·Runtime及isa指针知识·填坑

    Cocoa框架是iOS应用程序的基础,了解Cocoa框架,对开发iOS应用有很大的帮助。 1、Cocoa是什么? Cocoa是OS X和 iOS操作系统的程序的运行环境。...是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发中你可以使用各种语言;也不是开发工具,你可以在命令行上就可以创建Cocoa程序。...1.1、Cocoa框架 iOS中,Cocoa众多框架中最重要最基本的两个框架是:Foundation 和 UIKit。...用代码创建 通过继承UIView类或间接继承UIView类实现自定义用户界面 框架类组织架构图: ?...2、Cocoa对象 2.1 Objective-C是面向对象的语言 Objective-C和Java C++一样,有封装,继承,多态,重用。

    1K20

    IOS框架概览

    Touch层中的非常多技术都是基于Objective-C语言的。...Objective-C语言为iOS提供了像集合、文件管理、网络操作等支持。...Cocoa Touch层中的其它框架,对我们在应用程序中的开发来说也是非常实用的,如訪问用户通信录功能框架、获取照片信息功能的框架、负责加速感应器和三维陀螺仪等硬件支持的框架。...iOS框架介绍 什么是框架?本质上来说它是帮助我们完毕各种特定功能的软件库。 我 们编写的应用程序项目,都是从Cocoa Touch层開始的,详细来说就是从UIKit Framework開始的。...当在编敲代码的过程中须要用到一些特殊功能的时候,我们应该从框架的最顶端技术開始寻找对应的框架,仅仅有在上层结构无法解决时,才干使用其下层的技术。事实上,顶层的框架已经涵盖了我们绝大多数须要的功能。

    95310

    iOS - 老生常谈内存管理(二):从 MRC 说起

    在 Objective-C 中,它也可以看作是在许多数据和代码之间分配有限内存资源所有权的一种方式。...野指针: 在 C 中是指没有进行初始化的指针,该指针指向一个随机的空间,它的值是个垃圾值;在 OC 中是指指向的对象已经被回收了的指针(网上很多都是这样解释,但我认为它应该叫 “悬垂指针” 才对)。...如果你在整个代码中对实例变量使用retain和release,这肯定是错误的做法。 以下在 Counter 类中定义了一个NSNumber对象属性。...在《Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法》书中的第 31 条 —— 在 dealloc 方法中只释放引用并解除监听 一文中也提到:在 dealloc...但是,有三种情况可能会使用你自己的@autoreleasepool: ① 如果你编写的程序不是基于 UI 框架的,比如说命令行工具; ② 如果你编写的循环中创建了大量的临时对象; 你可以在循环内使用@autoreleasepool

    1.6K21

    Objective-C之父Brad J. Cox去世,他推动了今天苹果的软件生态

    任何 C 语言程序不经修改就可以直接通过 Objective-C 编译器,在 Objective-C 中使用 C 语言代码也是完全合法的。...随后在 1996 年,苹果收购了 NeXT 公司,旗下的操作系统 NeXTSTEP 被重命名为 Cocoa,WebObjects 则集成到 Mac OS Server 和 Xcode 中。...现在 Objective-C 与 Swift 是 OS X 和 iOS 操作系统、及与其相关的 API、Cocoa 和 Cocoa Touch 的主要编程语言。...它可以在现存 C 编译器基础上实现,而不需要编写一个全新的编译器,使得 Objective-C 能利用大量现存的 C 代码、库、工具和编程思想等资源。...在开发语言排行榜 TIOBE 榜单中,Objective-C 的流行程度指数一路下滑,替代者 Swift 的位次逐渐上升。

    44110

    Objective-C之父Brad J. Cox去世,他推动了今天苹果的软件生态

    任何 C 语言程序不经修改就可以直接通过 Objective-C 编译器,在 Objective-C 中使用 C 语言代码也是完全合法的。...随后在 1996 年,苹果收购了 NeXT 公司,旗下的操作系统 NeXTSTEP 被重命名为 Cocoa,WebObjects 则集成到 Mac OS Server 和 Xcode 中。...现在 Objective-C 与 Swift 是 OS X 和 iOS 操作系统、及与其相关的 API、Cocoa 和 Cocoa Touch 的主要编程语言。...它可以在现存 C 编译器基础上实现,而不需要编写一个全新的编译器,使得 Objective-C 能利用大量现存的 C 代码、库、工具和编程思想等资源。...在开发语言排行榜 TIOBE 榜单中,Objective-C 的流行程度指数一路下滑,替代者 Swift 的位次逐渐上升。

    36340

    关于编程语言OC之9个基础知识点

    这是《给自己的一份自学IOS开发的学习清单》中的《关于编程语言OC》读书笔记系列的第1篇。 入门务必记住这9点。...1、MAC操作系统上的整个开发环境成为Cocoa,Cocoa的开发语言是Objective-C,开发工具是Xcode 我以前搞不懂CocoaChina为何叫Cocoa,原来是因为Cocoa是Mac的开发环境...4、面向对象的特质:封装、继承、多态 4.1封装: 把客观事物封装成抽象的类,编写成h文件跟m文件。...4.2继承: 通过继承创建的新类,称为“子类”或“派生类”。 被继承的类称为“基类”、“父类”、或”超类“ 下面这张图先了解个大概: ? 4.3多态 多态是指同一个接口名称,但是体现为不同的功能。...如: Car *car=[[Car alloc]init]; 8、oc方法的调用:也称为给这个类或者实例发消息,类或者实例被称为“接收方”,oc允许在一个方法调用中嵌套另一个方法调用 记住格式:方括号[

    1.1K80

    译文: 低调奢华有内涵的「Runtime」

    当然,我是翻译了这篇文章,但是对Runtime的理解,还是很基础——主要是还没有太多实践,真实开发中几乎也用不到,一如文章所说:「如果可以,避免使用Objective-C的Runtime……」。...还有,不要忘记,很多激动人心的代码库都是用Objective-C写的,Cocoa本身就是用Objective-C写的,还有很多第三方库,和November Five(译者:一家公司)的内部库。...因为Runtime允许你访问很多Cocoa或者第三方库的底层特性。 Objective-C的Runtime究竟是什么?...用于检视(闭源框架)类的方法、属性;进行学习(Looking under the hood & learning from it) 因为Objective-C的Runtime允许你检视、重写(覆盖)、修改私有或者闭源框架中的方法...如果是开源的代码库,解决办法很简单:你报告这个问题,最好自己解决,然后创建一个pull request(译者:类似在GitHub上贡献开源库的过程)。但如果是闭源的框架,就不好说了。

    97940

    闲谈 iOS 的动态化

    # 「始作俑者」Wax 最早要从 Wax 这个项目开始说,大家都知道 Objective-C 有着非常强大的动态特性。...比如说: 运行时构造类和方法 运行时替换方法的实现 实际上这两个能力是非常恐怖的,他可以让 Cocoa 项目做很多类似黑魔法的事情,简单说就是可以让 Objective-C 像脚本语言那样,文本即代码...这个项目的做法是通过加载 Lua 脚本,动态的生成 Objective-C 的方法,通常用来替换掉出了问题的那个,Lua 脚本是可以动态下发的,所以也就实现了修复线上 bug 的使命。...当然,Wax 用起来是极为痛苦的,尤其是和 Objective-C 的类型转换。...# 异军突起的 React Native 和 Weex 时间继续在走,以 React Native 和 Weex 为代表的各种项目开始冒出来了,他们主要的想法并不是给项目做热修复,而是有更宏大的想法:使用脚本来编写

    66420

    【IOS开发进阶系列】iOS系统架构专题

    Touch层中的很多技术都是基于Objective-C语言的。...Cocoa Touch层中的其他框架,对我们在应用程序中的开发来说也是非常有用的,如访问用户通信录功能框架、获取照片信息功能的框架、负责加速感应器和三维陀螺仪等硬件支持的框架。...这些应用程序都是用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化。...它用一种高层的Objective-C接口配置动画和效果,然后重载在硬件上获得较好的性能。...核心基础框架与基础框架是紧密相关的,它们为相同的基本功能提供了Objective-C接口。

    1.7K41

    Cocoa编程学习笔记之MVC

    通过分离显示数据、持久化数据和处理用户交互的职责,MVC模式有助于创建易于理解的代码。而且,它促进了视图和模型的解耦,以便模型能被重用。...例如,在你的应用程序中,有两个界面,基于Web的和WPF的,那么你可以在两者中都使用同样的模型定义代码。 因而,在很多MVC框架中不管具体的工作方式如何,基本原理都大致如此的。...然而,在Cocoa(及Cocoa Touch)中,还是或多或少有所不同,苹果用MVC来代表Views(视图)、View Controller(视图控制器)和Models(模型);但是在不同的控件中,它们却不是完全一致的...在Objective-C/Cocoa的世界里,我们建立的controller通常是指应用程序(Application)的委托(Delegate),或者可以简单称做app delegate。...当你在Objective-C里面建立一个app delegate的时候,这个delegate可以做为你所有model和view的controller,或者你也可以为不同的model和view分别创建controller

    90170

    2021 年 iOS 应用程序开发七种最佳语言

    Apple 在 2014 年创建了它,作为 Objective-C 的继承者。...Swift 旨在与 Cocoa、Cocoa Touch 等框架以及用 Objective-C 为 Apple 产品编写的大量代码库一起使用。 ...如果您想相对快速地创建一个以后可以轻松扩展的应用程序,Swift 将是一个不错的选择。该语言相对容易学习并确保快速的开发过程,以及编写安全可靠的代码。...将 Swift 与 Objective-C 进行比较,在少数情况下,Objective-C 将是更好的选择。它是一种成熟的语言,甚至可能有点过时(最后一个版本于 2016 年发布)。...它是作为 Microsoft 对 Java 语言的回答而创建的。C# 与 .NET 平台紧密集成,它既是一个框架又是一个运行时环境。 C# 是开发出来的,最常用于为 Windows 系统编写应用程序。

    5K40

    Objective-C 中的点符号一定是恶魔吗?

    本文是Objective-C 中的代码气味系列文章中的一篇。* ......是的,这是夸张的说法。在有点符号的项目中,我确实能与点符号共存。但我不会自己写。...在引擎盖下,编译器会编写代码来计算 foo 的内存偏移量,然后将值 10 写入计算出的地址处的存储空间。速度非常快,而且非常轻便。...Objective-C 是 C 语言的严格超集,因此所有这些也适用于 Objective-C 代码。或者不适用。......你说不清楚,对吧?...在 C++ 中,您可以编写 this->qux = 10; 但更常见的做法是省略 this->,直接写成 qux = 10; 因为 qux 是一个具有类作用域的成员变量。...但现在,圆点符号可以让你继续使用这种臭烘烘的违规行为,而且看起来还不错! 轮到你了! 由于我看到的几乎所有 Objective-C 代码都使用点符号,我意识到自己在逆流而行。

    10910
    领券