黑马程序员 初学OC的一些注意总结2

高效复用PCB设计:Cadence Sub-Drawing跨项目复制技巧 本文详细介绍了Cadence Allegro中Sub-Drawing功能的应用技巧,帮助PCB工程师高效复用成熟设计模块。通过分步教学,从精准导出到完美导入,并提供了解决坐标错位与DRC冲突的实用避坑指南。掌握这一技巧能显著提升设计效率,实现团队知识的标准化积累与快速复用。 阅读详情

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、

<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----- -----------------

初学OC的一些注意总结2

1、  注意编译和运行过程中不同: 父类 名称 = [子类new] 在这个过程中编译器会给出警告,但不是错误。

运行的结果是使父类指针指向子类对象。这是由于oc是弱语法,这种最好是不出现父类指针调用子类特

有的方法(注意理解这句话)会出现警告。如果要调用这个方法的话就要强制转换

2、  强制转换是做给编译器看的

3、  OC是弱语法:Dog*d = [Cat new];[ d eat];在编译器中能通过,并且能运行eat方法。

4、  如果一个方法没有定义,oc编译不会报错,而且还能生成可执行文件。但是 .out文件运行会报错:

unrecognized selector sent to instance 即给实例发送了一个不能识别的消息。

5、  Oc在运行的时候才会检测对象有没有实现相应的方法(动态检测),可以没有声明,方法也能运行,

一般在main的前面。一般会出现闪退。

6、  要善于思考,思考代码的合理性。

7、  返回值是布尔类型的BOOL命名通常是isXXX开通

8、  在分.m 和.h文件是,注意不要#import “xxx.m ” 文件 这样会出现重复定义的错误,xcode链接是

把所有的.o文件一起链接运行的

9、  点语法的本质是方法调用xxx . xxx=10相当于[xxxxxx:10],成员变量的访问xxx->xxx。点语法表示的

不是setter方法就是getter方法

10、             变量的作用域:@public:在任何地方都能访问对象的成员变量 @private 只能在当前的类的

对象方法中直接使用。@protected 当前类和子类 @package 在同一个框架下使用,它介于public和private

之间。如果在.m文件中定义的成员变量名时的变量就是私有的,并且不能与声明中的成员变量同名

11、             @property是编译器语法,即编译器遇到它是就是自动展开setter和getter方法的声明,

@synthesize自动实现setter和getter方法。如果没有声明相应的成员变量,他会自动生成成员变量。并且还

是@private的作用域

12、             在setter和getter方法中又一个方法没有实现,用@property系统帮你生成另一个,并和成员变

量(如果没有的话),@property 参数类型分为四类:1、内存管理 ,retain(set方法里面的内存管理,OC对

象类型) 和assign (set方法直接赋值 ,也就是默认的情况,非      OC对象类型),还有一个copy(retain差不

多) 2、是否生成set方法:readonly(只读),readwrite(可读可写,默认)3、多线程管理:nonatomic(性能高)

 atomic(性能低 默认)4、setter和getter方法的命名

13、             万能指针,id,它包含*,即定义指针为 id p=[Person new];

14、             New方法的解构:1、alloc,分配内存 2、init,对象初始化Person *p = [Person new]相当

于Person *p = [Person alloc]; Person *p1 = [pinit];

15、             在重写init方法时,必须写[super init];保证初始化父类的一些成员变量,然后根据需要在自己重写的

方法中初始化一些数据,一般还需要判断self是否为空即:if(self != nil)  (nil相当于0),一般

这样写:if(self = [super init]) …

16、             自定义的构造方法规范:1、对象方法 2、  返回值是(id) 3、都是已init开头最好是initWith开头

17、             代码中尽量低耦合才是完美的,即更改一个方法或者类的内容,不会影响或影响最低它类或方法

18、             @category在不给以前类内的基础上增加类的方法  格式:             @interface 类名(类别名称) @end  @implementation 类名(类别) @end

19、             注意类别中要使用原类中的成员变量时,变量必须是明文定义的,不能是@property产生的。否者会报错。

20、             在使用类别是如果有名称相同的方法,类别的方法优先级更高,即在类别中会覆盖原来类中的方法。在两个

类别中都有同名方法,最后一个编译的被使用

21、             类的本身也是一个对象,它的类型是Class类型,称之为“类对象”,注意与实例对象的区别。Class定义的

时候不需要加(*)它包含了星,

22、             获取内存中的类对象的方法1、[实例对象class] 2、[类名class] 

我们用%p输出指针的地址。

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、

<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----- -----------------


Unity3d实现红外热成像效果 1.将需要在红外图像中高亮的物体设置到图层PostProcessing。 2.新建一个相机CameraHighLight,设置其Culling Mask为PostProcessing,也就是在这个相机中只有PostProcessing图层的物体可见。 3.新建一个RenderTexture,命名为HightLightRt,将CameraHighLight的Target Texture设HightLightRt。 4.新建一个相机Camera2,这个相机用于显示其他物体。 接下来将CameraHigh 阅读详情

相关推荐

共封装光学(CPO):下一代互联革命

Nvidia:产品:Quantum-X Q3450(115.2T,144×800G,2025H2上市)、Spectrum 6800(409.6T,512×800G,2026H2上市);技术路线:TSMC COUPE封装、MRM调制器、光栅耦合、外部激光源(Lumentum/Ayar Labs供应);战略定位:以横向扩展CPO验证供应链,最终聚焦纵向扩展场景(Feynman架构)。

存储随笔 4964

黑马程序员-OC语言核心语法(1)

1. 点语法:对象调用方法       上述完整方法为- (void)setAge:(int)age;   1> 如何判断set和get方法:         如果赋值,则是set方法。                  eg:stu.age = 10;         否则是get方法。                   eg :  int age =

wlwl363的专栏 430

LMS Virtual.Lab二次开发:声学仿真结果导出方法(VBScript、Python)

Siemens LMS Virtual.Lab 提供一套集成软件平台用以模拟机械系统的品质属性,如结构完整性、振动噪声、耐久性、系统动力学特性、驾驶的平顺性及操纵的稳定性等。

爱看书的小沐 6021

黑马程序员 初学OC的一些注意总结 1

---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ---------------------- ---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----------------------

MeditatingPig的专栏 692

C语言图形化界面——含图形、按钮、鼠标、进度条等部件制作(带详细代码、讲解及注释)

本文借助easyx库函数(提供下载链接),很方便地用C语言实现了鼠标、按钮、进度条、坐标尺等操作,为普通C程序的友好人机交互界面提供了一种简单便捷的方案。

体会编程语言独到的美 17万+

从CCD数据上报看wxHOOK的封号风险与规避

本文深入分析了微信CCD数据上报机制对wxHOOK的检测逻辑与封号风险,揭示了调试器路径暴露、非白名单DLL加载和内存校验失败等关键风险点。通过实战案例和规避方案,帮助开发者理解如何安全使用wxHOOK技术,避免封号风险,包括内存镜像欺骗、内核级隐蔽和硬件辅助方案等高级技巧。

weixin_27875131的博客 626

黑马程序员 初学OC的一些注意总结3

---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----- ----------------- 初学OC的一些注意总结3

MeditatingPig的专栏 776

GD32F303 ADC+DMA实战:用硬件过采样搞定多通道数据采集(附完整代码)

本文详细介绍了GD32F303系列MCU通过ADC+DMA结合硬件过采样技术实现多通道数据采集的实战方案。从硬件设计要点到软件配置全解析,包括时钟树配置、ADC模块初始化和DMA传输设置,提供了完整的代码示例和优化技巧,帮助工程师构建高精度、低功耗的数据采集系统。

weixin_30466039的博客 318

黑马程序员——oc注意事项

alloc  new  retain之后都必须要调用release方法 计数器要变只有这几种方法 retain release alloc new copy方法才会使计数器改变,谁想用人家对象,就对他进行retain操作,但在dealloc释放本对象的时候也释放引用的对象,先释放引用的对象,然后释放自己, 内存管理做到”谁污染谁治理“,谁调用谁retain,是销毁 也要销毁retain的对象

u011004811的专栏 530

手把手教你玩转CPU微架构专栏--​​​​1.5 工具准备:用Gem5模拟器“看见”微架构(安装、基础仿真命令)​

本文介绍了如何使用Gem5模拟器进行微架构学习和实验。Gem5是一款支持多种指令集的开源微架构模拟器,可模拟CPU流水线、缓存等核心组件。文章详细说明了在Ubuntu和macOS上安装Gem5的步骤,包括依赖安装、源码编译和验证方法。通过一个简单的加法指令测试程序,演示了如何运行基础仿真并解读输出日志,包括指令执行流程和性能统计数据。此外,还提供了两个实战实验:修改L1缓存大小和观察分支预测失败,帮助读者理解微架构参数对性能的影响。最后指出Gem5是学习微架构的"显微镜",能直观观察指令

xiaoheshang_123的博客 140

Android 15.0 app进程保活白名单功能实现

在15.0的系统rom产品开发中,在某些重要的app即使进入后台,产品需求要求也不想被系统杀掉进程,需要app长时间保活,就是app进程保活白名单功能的实现, 所以需要在系统杀进程的时候不杀掉白名单的进程,接下来就看怎么样来实现这些功能

安卓兼职framework和app工程师的博客 638

黑马程序员_OC_类和对象

一.面向对象和面向过程的思想(对比)

huangchen_wyx的专栏 680

EtherCAT ROS2 入门教程(一)

本文介绍了EtherCAT驱动与ROS2的集成方案,主要包括三部分内容:1)在Ubuntu 22.04上安装IgH EtherCAT主站的详细步骤,包括内核配置、源码编译和网络适配器设置;2)构建ethercat_driver_ros2,通过ros2_control描述文件配置硬件接口和EtherCAT从站模块插件;3)使用方法,包括启动EtherCAT主站和运行配置包。该方案支持通过参数文件定义硬件接口,并提供通用和专用两种EtherCAT模块插件,便于开发基于EtherCAT的工业应用。

机器人控制与仿真应用 1528

黑马程序员——iOS核心基础(17-18天)-黑马程序员-专题视频课程

C语言基础17-18天。其中包括OC类和对象创建、类方法和Xcode

heima_cxy的博客 292

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

黑马程序员 初学OC的一些注意总结4(尾)

---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----- -----------------

MeditatingPig的专栏 795

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

黑马程序员———OC语言 NSArray的介绍

------- Java培训、Android培训、iOS培训、.Net培训 、期待与您交流 --------

zxjqaz的博客 412

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

黑马程序员__oc基础知识总结

------- IOS培训、android培训、期待与您交流! ----------

wuyun768的专栏 540

黑马程序员(OC的三大特性)

------http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

ixx__123的专栏 389

——黑马程序员——OC中@property参数

-----------android培训、java培训、java学习型技术博客、期待与您交流!-----------

yhp1095785221的博客 579

黑马程序员--OC之@property的使用

黑马程序员--OC之@property的使用 ------- android培训、java培训、期待与您交流! ---------- 1、传统的get和set方法 定义一个Student类,拥有一个成员变量age和对应的getset方法。 Student类: @interfaceStudent : NSObject{ int_age; } -(void)setAge:(int)

hxwwn的博客 390

黑马程序员——ios学习笔记 OC Foundation—NSArray&NSDictionary

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- NSArray是OC中的数组类, 开发中建议尽量使用NSArray替代C语言中的数组C语言中数组的弊端只能存放任意OC对象, 并且是有顺序的不能存储非OC对象, 比如int\float\double\char\enum\struct等。 NSMutableArray是NSArray的子类

tt3tt3tt的博客 485

黑马程序员—OC基础—autorelease的使用

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 黑马程序员—OC基础—autorelease的使用 自动释放池: (1)在iOS程序运行过程中,会创建无数个池子,这些池子都是以栈结构(先进后出)存在的。 (2)当一个对象调用autorelease时,会将这个对象放到位于栈顶的释放池中 (1)iOS 5.0以前的创建方

追风——博客 346

黑马程序员——OC语言基础篇---核心语法

------Java培训、Android培训、iOS培训、.Net培训 期待与您交流! ------- 本篇主要通过一些小案例来讲述OC的一些核心语法,包括点语法、property、构造方法和分类等,本章内容的开发工具是Xcode,不再使用前面的终端来编译和运行程序了。 点语法 在学习其他语言的时候,经常可以见到 xxx.xxx,OC中也有类似的使用方法,被称作点语法,但其本质上却和其他语

liufeng124的专栏 970

黑马程序员———OC第一天(类和对象)

一、OC简介 1.OC是在C语言的基础上,增加了一层最小的面向对象语法 2.完全兼容C语言 3.可以再OC代码中混入C语言代码,甚至是C++代码 对于2,3 两点如何理解呢? 新建一个.m的文件(注:OC文件的后缀为.m)在这个.m中你可以用你再学习C语言中学过的语法和知识,编译、链接、运行完全没有问题。 // 完全没有问题 #include int main() { p

sun8_gao的专栏 558

黑马程序员_OC核心语法之分类

一、分类(category)

如果你错过了一天,那么你就真的错过了一天! 7029

黑马程序员——C语言和OC内存管理

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 第一讲  C语言中的内存管理 内存管理的基本概念         内存管理,是值软件运行时对计算机内存资源的分配和使用的技术,其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源 内存分配方式有三种: 1)从静态存储区域分配。内存在程序编

Itzhen的博客 867
上一篇: 黑马程序员 初学OC的一些注意总结 1
下一篇: 黑马程序员 Xcode一些常见的快捷键
MeditatingPig
博客等级 码龄12年 3粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值