《从零开始自学iOS》_02

本文深入探讨了Objective-C与Swift两种语言在iOS开发领域的应用与对比,详细解析了它们的特点、优势及适用场景,帮助开发者更好地选择适合自己的编程语言。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先mark几个关键词吧

@Class 类名   ;

  1. 性能优化
  2. 防止循环拷贝
  3. 使用@Class来告知类代替#import<>  ,在.m实现文件中还是使用#import

release    autorelease    autoreleasepool

MRC   manul reference counting

  1. retain  assign   
  2. MRC机制下,A调用B, 要将Bretain ;A不用B了 ,还要将B release一次

ARC    automatic reference counting

  1. strong   weak
  2. A拥有B时 , 用strong修饰B即可;相当于MRC机制下用retain修饰的对象
  3. assign一般用于保存基本数据类型

category分类

  • @interface 类别 (扩展名称)
  • //method;
  • @end
  • ~~~~~~~~~~~~~~~~
  • @implementation
  • //method
  • @end
  1. 只能扩展方法,不能扩展属性
  2. 在category中可以访问对应类的.h文件中声明的属性
  3. 分类中的方法会重写覆盖原有类的方法
  4. 优先访问原则 : category分类 > 本类 > 父类

匿名分类/类扩展 (class Extension)

  1. 用于扩充私有属性和私有方法

只在@implementation中声明的属性是私有属性

只在@implementation中实现,却没有声明的方法为私有方法

NSString类

  • NSString *str = @“xxxooo”;
  • unichar c = 【str charaterAtIndex:1】; 将str中的第1个字符取出来赋值给字符c
  • 结构体中 length
  • int a = str.length      返回str的长度给a

block块

  1. block为数据类型
  2. 先重命名block再使用  : typedef int (^calBlock)(int ,int);       calBlock sumBlock = ^(){  }; calBlock就是重新命名后的块名。
  3. 一般是前面和后面的代码重复了,会使用block作为参数传入函数来使用
  4. block里的变量若是与外部的变量同名,block会在堆内复制一个同名变量来使用
  5. 一般出现同名变量的时候可以在外部的变量前面用__block修饰  ;  这样修饰后的变量就是地址传递 。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值