OC开发技巧小结

本文详细探讨了Objective-C与Swift两种语言在iOS开发领域的应用与区别,包括其核心特性、优缺点以及实际项目中的使用场景。强调了Swift作为Apple官方推荐的语言在性能、安全性以及开发效率方面的优势,同时也分析了Objective-C在现有大型项目中的迁移策略。


1,类组合中的一些理解

 如果一个类A成员变量里面包含另一个类B,则在A创建一个对象后,并没有初始化,A对象里面只有一个B类型的指针,但这个指针并没有指向任何内存空间,和其他类型一样时空类型,其实和基本数据类型道理是一样的,需要用set方法给自己赋值。

例如 Circle 类中包含类 Point2D 这个类
Circle *c1 = [Circle new];
Point2D *p1 = [Point2D new];
        [p1 setX:10 andY:15];
[c1 setPoint:p1]; // 用Circle的setPoint方法给_Point 赋值。

2, BOOL类型函数名命名规则

当创建 BOOL 返回值类型的函数时,函数名一般在前面加上is。

3, 类名调用类方法不加*

只有利用类名调用类方法的时候,不需要在类名后面写* ,其它情况下,类名后面统一加上一个* 。

4, 条件表达式的值只能是1或0;
5, 代码编写以可读性,简洁为标准。
6, 定义一个类分两个文件:.h声明文件 .m实现文件
       .h  :成员变量、方法的声明
       .m :方法的实现

7, 头文件 包含规范

include 和 import 一般只包含.h 声明文件,不要包含 .c或.m文件,因为一旦包含进去Xcode编译器会报重复定义的错误。因为Xcode编译器会同时编译所有.m文件。

8,注意 #pragma mark – 的“-”后面不能有空格。
     如果你的标志没有出现在弹出菜单中,比如没有分隔线出现,请在Xcode菜单 “Preferences..”中的 “Code Sense”选项取消选中”Sort listalphabetically”即可。

9.   @property参数规范

如果创建的是对象,一般写上(nonatomic,retain),如果创建的是一般数据类型,一般写上(nonatomic,assign)。

10,@class 

开发中,当类引用类时,声明.h文件里一般用@class ,这样可以提高性能,在.m实现文件里,如果引用到被引用类的实体变量或者方法时,还需要使用#import方式引入被引用类

11,命令行书写

    链接的时候要主动告诉编译器要把 Foundation框架接入进来。指令为:
cc xxx.o -framework Foundation

12,类的书写

    (1),声明和实现后面忘了 @end,声明写在实现部分,实现部分写在声明里面,要严格按照格式语法书写。

    (2),成员变量 

  1> 默认为 @previte
  2> 只能在实例(对象)下调用成员变量
  3> 不允许在声明里初始化
  4> 不能随便将成员变量当做C语言中的变量来使用

13,对象的书写

    (1),OC对象成员变量

    一定要以下划线 _ 开头
    好处:1,让成员变量和get方法的名称区分开。
                2,可以跟局部变量区分开,一看到下划线开头的变量,一般都是成员变量。

(2),OC对象方法

  1>对象方法都是以减号 - 开头,- 后面跟空格
  2>对象方法的声明必须写在 @interfacehe和  @end之间
   对象方法的声明必须写在 @implementation和  @end之间
  3>- 后面跟空格

14,c函数

    (1),c语言函数可以写在文件中任意位置。

    (2),调用不依赖对象。

    (3),函数内部不能直接通过成员变量名访问某个对象的成员变量。

15,OC类方法

    (1),加号 + 开头

    (2),只能由类(名)来调用

    (3),可以允许类方法和对象方法同名

    (4),类方法中不能访问成员变量(实例变量)

16,类方法的好处和实用场合

    (1),不依赖于对象,执行效率高

    (2),能用类方法尽量用类方法

    (3),场合:当方法内部不需要使用到成员变量时,就可以改为类方法



内容概要:本文档围绕六自由度机械臂的ANN人工神经网络设计展开,涵盖正向与逆向运动学求解、正向动力学控制,并采用拉格朗日-欧拉法推导逆向动力学方程,所有内容均通过Matlab代码实现。同时结合RRT路径规划与B样条优化技术,提升机械臂运动轨迹的合理性与平滑性。文中还涉及多种先进算法与仿真技术的应用,如状态估计中的UKF、AUKF、EKF等滤波方法,以及PINN、INN、CNN-LSTM等神经网络模型在工程问题中的建模与求解,展示了Matlab在机器人控制、智能算法与系统仿真中的强大能力。; 适合人群:具备一定Ma六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)tlab编程基础,从事机器人控制、自动化、智能制造、人工智能等相关领域的科研人员及研究生;熟悉运动学、动力学建模或对神经网络在控制系统中应用感兴趣的工程技术人员。; 使用场景及目标:①实现六自由度机械臂的精确运动学与动力学建模;②利用人工神经网络解决传统解析方法难以处理的非线性控制问题;③结合路径规划与轨迹优化提升机械臂作业效率;④掌握基于Matlab的状态估计、数据融合与智能算法仿真方法; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点理解运动学建模与神经网络控制的设计流程,关注算法实现细节与仿真结果分析,同时参考文中提及的多种优化与估计方法拓展研究思路。
内容概要:本文围绕电力系统状态估计中的异常检测与分类展开,重点介绍基于Matlab代码实现的相关算法与仿真方法。文章详细阐述了在状态估计过程中如何识别和分类量测数据中的异常值,如坏数据、拓扑错误和参数误差等,采用包括残差分析、加权最小二乘法(WLS)、标准化残差检测等多种经典与现代检测手段,并结合实际算例验证方法的有效性。同时,文档提及多种状态估计算法如UKF、AUKF、EUKF等在负荷突变等动态场景下的应用,强调异常处理对提升电力系统运行可靠性与安全性的重要意义。; 适合人群:具备电力系统基础知识和一定Matlab编程能力的高校研究生、科研人员及从事电力系【状态估计】电力系统状态估计中的异常检测与分类(Matlab代码实现)统自动化相关工作的工程技术人员。; 使用场景及目标:①掌握电力系统状态估计中异常数据的产生机制与分类方法;②学习并实现主流异常检测算法,提升对状态估计鲁棒性的理解与仿真能力;③服务于科研项目、课程设计或实际工程中的数据质量分析环节; 阅读建议:建议结合文中提供的Matlab代码进行实践操作,配合电力系统状态估计的基本理论进行深入理解,重点关注异常检测流程的设计逻辑与不同算法的性能对比,宜从简单案例入手逐步过渡到复杂系统仿真。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值