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

Objective-C程序中的C风格太多了?

在Objective-C程序中,C风格的代码确实可能会比较多。Objective-C是一种面向对象的编程语言,它是C语言的扩展,并且兼容C语言的代码。因此,Objective-C程序中可能会包含很多C风格的代码。

C风格的代码通常指的是使用指针、数组和结构体等C语言特性的代码。这种代码通常比较底层,但是它们在性能和内存管理方面具有更好的控制能力。如果您在Objective-C程序中发现C风格的代码比较多,可以考虑以下几个方面:

  1. 使用Objective-C的面向对象特性。Objective-C是一种面向对象的编程语言,它提供了许多面向对象的特性,例如类、对象、继承、封装和多态等。使用这些特性可以使代码更加清晰和易于维护。
  2. 使用现代的Objective-C语法。现代的Objective-C语法提供了许多新的特性,例如自动引用计数、块和集合等。这些特性可以使代码更加简洁和易于理解。
  3. 使用苹果提供的框架和库。苹果提供了许多框架和库,例如UIKit、Foundation、Core Data等。这些框架和库可以帮助您更快地开发应用程序,并且它们通常使用Objective-C的面向对象特性和现代语法。

总之,如果您在Objective-C程序中发现C风格的代码比较多,可以考虑使用更多的Objective-C特性和现代语法来简化代码。同时,也可以使用苹果提供的框架和库来帮助您更快地开发应用程序。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Objective-C集合类

下面详细介绍Objective-C集合类以及每个集合类用法,学过其他面向对象编程语言小伙伴们看到OC集合类会有种莫名亲切感,理解起来问题不大,可以类比Java集合类去学习...在Objective-C集合类主要包括不可变数组--NSArray,  可变数组--NSMutableArray,   不可变字典--NSDictionary,    可变字典--NSMutableDictionary...一、数组         1.不可变数组  NSArray             数组是有序对象集合,用来存储对象有序列表,在OC数组必须存是对象,不能是基本数据类型,若想存入基本数据类型...NSArray也是OC一个对象,使用NSArray也需要进行实例化,前面的博客在类初始化中提到了便利初始化函数和便利构造器,在NSArray也少不了这两样东西我们可以通过NSArray便利初始化函数或者便利构造器进行...OC集合类是不能放基本数据类型,那么我们如何把基本数据类型封装成对象呢?

1.1K70

Objective-Cruntime机制应用

Objective-Cruntime机制应用 一、初识runtime         Objective-C是一种动态语言,所谓动态语言,是在程序执行时动态的确定变量类型,执行变量类型对应方法...因此,在Object-C中常用字符串映射类技巧来动态创建类对象。因为OC动态语言特性,我们可以通过一些手段,在程序运行时动态更改对象变量甚至方法,这就是我们所说runtime机制。...,xcode提示如下: ?...,你或许会遇到一个问题,ARC下,编译器不允许你将int类型值赋值给id,在buildset中将Objective-C Automatic Reference Counting修改为No即可。...七、做点小手脚         程序员总是得寸进尺,现在,我们要做点事情,用我们函数替换掉类函数: - (void)viewDidLoad {     [super viewDidLoad];

39450

Objective-C继承和多态

Objective-Csuper是指向直接父类指针,而self是指向本身指针,self就相当于javathis指针。...在Objectiv-C几乎所有的类都是继承自NSObject类,NSObject类存在大量功能强大方法。下面对NSObject类各种方法进行试验和介绍:         1....= str1"); }     ​    ​Objective-C继承         继承是is-a关系,比如猫咪是一个动物,那么动物是父类,而猫咪是动物子类。...2014-07-30 08:38:12.958 HelloOC[483:303] 我是富二代BILL`s son,我超喜欢飙车 ​Objective-C多态     ​    ​多态简单说就是对于不同对象响应同一个方法时做出不同反应...richer2ndWithName:@"BILL`s son" AndAge:16 AndGender:@"男" AndHobby:@"飙车"]; [richer poss]; [richer myHobby];     ​上面程序输出结果和继承部分结果是一致

1.2K80

Objective-CBlock(闭包)

学习OCblock之前也小担心一下,Block在OC属于高级部分,心里有又有个疑问:学起来难不难?...看过Block部分,感觉Block挺好理解,用起来也挺顺手,Block没我想象那么难理解。         废话少说,学习一门新编程语言是少不了代码量支持,所以代码是少不了。...下面就通代码来认识一下OCblock使用。   ...,然后在调用代码块时候修改两个局部变量值,然后再代码块显示变量值。         ...2.成员变量在block使用     ​    ​成员变量在block使用是加上self->a使用,所以在声明成员变量时候加不加__block,在成员函数代码块中都可以访问修改;     ​    ​

1.4K90

Objective-CNSArray类解读

Objective-CNSArray类解读     NSArray数组类是Objective-C语言中常用也是重要一个类,除了开发中常用到一些基础功能,NSArray及其相关类还封装了许多更加强大功能...NSArray属性与方法: //获取数组中元素个数 @property (readonly) NSUInteger count; //通过下标获数组元素 - (ObjectType)objectAtIndex...:(NSUInteger)index; //初始化方法 - (instancetype)init; //通过C语言风格数组创建NSArray对象 需要注意,C数组需要为Objective对象,cnt...参数为C数组长度 //如果cnt值小于C数组长度,则会对C数据进行截取赋值,如果大于则程序会崩溃 - (instancetype)initWithObjects:(const ObjectType...C数组 objects参数需要为分配好空间C指针 - (void)getObjects:(ObjectType __unsafe_unretained [])objects range:(NSRange

1.3K20

Objective-C类目,延展,协议

Objective-C类目(Category),延展(Extension),协议(Protocol)这些名词看起来挺牛,瞬间感觉OC好高大上。...一.Objective-C类目(Category)         在Objective-C比其他OOP编程语言多了个类目,在OC除了用继承来扩充类功能函数外我们还可以用类目来实现。...友元就是非本类方法可以使用本类得变量,这也是对类方法一个扩充,个人感觉在OC得类目和C++友元有着异曲同工之妙(仅代表个人观点,欢迎批评指正),下面我们就来详细学习一下OC得类目吧。         ...二.Objective-C延展(Extension)         简单说匿名类目就是延展,在延展定义方法是类私有的方法只能在类内部调用,定义延展方式就是把类目中括号得名字省略掉,括号保留这就是延展...其实在延展定义方法不是真正私有方法和C++, Java得方法还有所区别,在类初始化文件引入相应延展头文件,其延展对应方法也是可以访问

1K80

Objective-C单例模式

​    ​单例模式算是设计模式中比较简单一种吧,设计模式不是只针对某种编程语言,在C++, Java, PHP等其他OOP语言也有设计模式,笔者初接触设计模式是通过《漫谈设计模式》了解。...不过在23种设计模式里面单例模式还是算比较好理解, 那么在OC又是怎么来表示单例模式呢?下面会结合着代码,理解一下OC得单例模式。     ​    ​...首先得了解什么是单例模式,用大白话说,单例模式就是在程序这个类只对应着一个实例,这就是单例模式,单例模式一般用全局静态对象来实现。...下面我们会建立一个生成单例类SingletonClass,在实现文件定义各种方法来实现我们单例模式。     ​    ​...,下面开始我们测试吧;     ​在main函数代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 //单例模式测试 SingletonClass

1.8K70

Objective-C委托(代理)模式

简单说代理就是把相应功能交给实现接口相应来解决。在OC没有接口该如何实现代理呢?...前面的博客笔者说提了一句,在OC协议和Java接口极为相似,都是只声明方法而不去实现,方法实现在OC交个遵循协议类,而在Java中方法实现交给实现接口类。...1.在Java写代理的话,我会先写房屋中介接口,所以在OC我们首先也要先声明房屋中介协议,Protocol方法是每个房屋中介必须有的方法,所以在Java中会抽象成接口,而在OC我们会把他声明为协议...by ludashi on 14-8-7. //  Copyright (c) 2014年 Mr.li....到这的话委托代理模式就差不多了 上面的总结暂且这么说吧,是根据笔者自己理解所总结内容,不免有偏颇之处,欢迎批评指正,转载请注明出处。

1.2K90

Objective-CBlock回调模式

如果 读者之前用过SSH框架的话,看到OCBlock回调,会感觉非常亲切,和Java接口回调像极了。还是那句话,上些Block回调代码最为直接。...在Component我们只给出代码块声明,不进行实现,然后在Controller中进行实现,在Component中进行调用,也就是说由组件提供代码块形式和代码块参数,在Controller给出业务逻辑...15 16 17 18 19 20 //  ComponentBlock.h //  Memory //  Created by ludashi on 14-8-19. //  Copyright (c)...,为了实现组件封装,我们用延展来隐藏我们组件要用到方法,在延展声明了我们要使用组件,然后再实现部分进行组件初始化和编写组件要调用代码块,代码块参数由组件提供,而控制器只提供业务逻辑控制...,在控制器我们需要 启动我们要使用组件,也就是组件runBlock方法。

1.7K50

Objective-C 我接受点符号

不管怎么样样,点符号还是可以。 好了,这是我说。 我曾一直是点符号坚定反对者。我认为它掩盖了消息传递,并鼓励程序员通过链式点语法来违反 "得墨忒耳定律(Law of Demeter) "。...我甚至将点符号描述为 Objective-C 代码一种气味。 因此,你可能会惊讶地发现,我最近在代码采用了点符号!事情是这样......在我观念转变之前 我有两个编码习惯让你们一些人觉得很奇怪: 对于一个属性,我更倾向于通过它 ivar 进行访问。 当然,我也没有使用点符号。 有人说,"访问属性时一定要使用 self."。...但关键就在这里:ReactiveCocoa 功能性反应编程风格依赖于键值观察(KVO)。 与 KVO 相比,我更喜欢使用通知主要原因是,我喜欢使用单独方法来处理模型变化不同方面。...而在 KVO ,所有的观察都会转到一个方法,然后该方法必须根据变化类型来处理分派。 但我不知道是,直接操作 ivar 并不会触发 KVO。

8910

Objective-C 变量作用域 原

iOS,修饰变量关键字有四个,分别是:  1  @public  被这个关键字修饰变量是完全开放,只要有这类对象存在,就可以访问到这个变量。...2  @protected 被这个关键字修饰变量是受保护,只有在声明变量这个类中和它子类,可以访问。  ...3  @private 被这个关键字修饰变量是私有的,只能在声明这个变量类中使用,子类也不能使用。  ...4  @package 这个关键字比较难理解,大致意思是被修饰变量是封装,在本框架内可以自由使用,效果和@public 相同,而在框架外不能使用,其子类也不能使用,效果又相当于@private。...一点扩展: 访问类变量,我们可以用->符号,它和点语法区别在于,点语法实际上是调用set与get方法,而->符号是直接访问变量。 专注技术,热爱生活,交流技术,也做朋友。

53820

objective-C接口与泛型

先承认我是标题党,因为在obj-c世界,官方根本没有"接口"与"泛型"这样说法。 不过在obj-c中有二个与之接近概念"非正式协议(interface)"与"正式协议(protocol)"。...非正式协议在obj-c关键字虽然也是interface,但是这个跟c#接口(interface)并不完全相同。...这就是obj-c协议跟c#接口不一样地方:在c#接口是强制必须实现,否则编译这一关就过不了,而obj-c虽然在编译时会警告,但是最终能编译通过。...(不信大家可以把NSObjectIQuery改成其它类interface定义名称试试,编译根本通不过) 此外,obj-C 2.0对正式协议还做了一些扩展,允许把正式协议方法标识为...另一个话题泛型 在obj-c,一切皆为指针。前面的学习,我们已经接触到了一种特殊类型id,它可以认为是一种特殊指针:可以指向任何类型对象。

2K50
领券