当前位置: 首页 > news >正文

上海网站空间租用app开发一般收费

上海网站空间租用,app开发一般收费,好看网站的浏览器,宿州房产信息网二手房在Objective-C中,方法名称可以通过几个标签名称组成,这是跟C/C中完全不一样的地方。每个标签都是字段冒号的写法,冒号后面是方法的参数,参数包括参数类型和参数变量,其中参数类型要用括号括起。方法参数的标签是通过在…

在Objective-C中,方法名称可以通过几个标签名称组成,这是跟C/C++中完全不一样的地方。每个标签都是字段+冒号的写法,冒号后面是方法的参数,参数包括参数类型和参数变量,其中参数类型要用括号括起。

方法参数的标签是通过在方法声明和实现中使用冒号(:)来设置的。简单理解,标签是Objective-C语法的一部分,通过冒号来区分方法名称和参数,冒号前的都算是方法名字,冒号后的是函数的几个参数。这些标签不仅提高了代码的可读性,还使得方法调用更加明确和直观。

下面是一个详细的示例,展示了如何在Objective-C中设置和使用方法参数标签。

示例:创建一个带有多个参数标签的方法

假设我们有一个类 Book,其中包含一个方法 initWithTitle:author:yearPublished:,该方法接收三个参数:书名、作者和出版年份,并初始化一个新的 Book 对象。

定义和实现 Book 类
#import <Foundation/Foundation.h>@interface Book : NSObject@property (nonatomic, strong) NSString *title;
@property (nonatomic, strong) NSString *author;
@property (nonatomic, assign) int yearPublished;- (instancetype)initWithTitle:(NSString *)title author:(NSString *)author yearPublished:(int)yearPublished;@end@implementation Book- (instancetype)initWithTitle:(NSString *)title author:(NSString *)author yearPublished:(int)yearPublished {self = [super init];if (self) {_title = title;_author = author;_yearPublished = yearPublished;}return self;
}@endint main(int argc, const char * argv[]) {@autoreleasepool {Book *book = [[Book alloc] initWithTitle:@"1984" author:@"George Orwell" yearPublished:1949];NSLog(@"Title: %@", book.title);NSLog(@"Author: %@", book.author);NSLog(@"Year Published: %d", book.yearPublished);}return 0;
}

解释

方法声明

- (instancetype)initWithTitle:(NSString *)title author:(NSString *)author yearPublished:(int)yearPublished;
  • initWithTitle: 是第一个参数的标签。
  • author: 是第二个参数的标签。
  • yearPublished: 是第三个参数的标签。

方法实现

- (instancetype)initWithTitle:(NSString *)title author:(NSString *)author yearPublished:(int)yearPublished {self = [super init];if (self) {_title = title;_author = author;_yearPublished = yearPublished;}return self;
}
  • 在方法实现中,参数的顺序和标签与声明保持一致。
  • 使用 _title_author 和 _yearPublished 来存储传入的参数值。

在Objective-C中,当你在类的实现中设置属性的值时,通常可以直接使用属性名(例如 self.title = title;)。然而,在初始化方法中直接使用属性名可能会导致一些问题,特别是在属性被重写或有自定义的getter/setter方法的情况下。为了避免这些问题,通常会直接使用实例变量(即属性的内部存储变量)来设置属性的初始值。

这里使用了 _title、_author 和 _yearPublished 来直接设置属性的值。这些是属性的内部存储变量,用于存储属性的实际数据。使用这些内部存储变量可以确保在初始化过程中直接设置值,而不会触发任何额外的逻辑(如自定义的setter方法),从而避免潜在的问题。

详细说明
直接使用属性名:

self.title = title;
这种方式会调用属性的setter方法。如果setter方法中有自定义的逻辑,这些逻辑会在初始化过程中被执行。在某些情况下,这种行为可能是不期望的。

使用内部存储变量:

_title = title;
这种方式直接将值赋给实例变量,不会调用任何setter方法。这在初始化方法中是更为安全和推荐的做法,因为它确保了属性的值被直接设置,不会触发任何额外的逻辑。

因此,在初始化方法中使用实例变量而不是属性名是一种更安全的做法,可以避免在对象初始化过程中不必要的副作用。

方法调用:

Book *book = [[Book alloc] initWithTitle:@"1984" author:@"George Orwell" yearPublished:1949];
  • 调用 initWithTitle:author:yearPublished: 方法时,每个参数前面都有相应的标签。
  • 这种方式使得代码非常清晰和易于理解。

总结

  • 每个参数前面都有一个标签,标签后面跟一个冒号(:)。
  • 标签有助于提高代码的可读性和可维护性。
  • 方法调用时,每个参数都需要带上对应的标签,这使得调用意图非常明确。

通过这种方式,你可以轻松地定义和使用带有多个参数标签的方法。

http://www.dtcms.com/a/550350.html

相关文章:

  • 量化指标解码04:解锁MACD的威力|零轴、背离与多周期共振
  • zabbix 监控进程 日志 主从状态和主从延迟
  • xshell连接kali ssh服务拒绝了密码
  • 【MySQL】--- 视图
  • 【大模型:RAG】--CLIP模型实现多模态检索
  • 从零开始:Netlify 免费部署应用超详细指南
  • 空间点绕任意轴旋转的数学原理与实现
  • 公司网站维护如何做分录wordpress 显示阅读数
  • wordpress站内计费搜索wamp和wordpress
  • 唐山网站建设推广网站优缺点分析
  • 虚拟主机 发布网站北京软件培训机构前十名
  • 企业网站规划与建设论文北京房地产信息网
  • 网站建设需要提供哪些材料免费公司logo图标
  • 上海网站建设渠道wordpress 自定义逻辑
  • lua table.remove引发的偶现bug
  • 常熟做网站价格wordpress 改变字体
  • 做水果网站弄个什么名字钓鱼平台设计
  • C++ STL:string类(3)|operations|string类模拟实现|附源码
  • 微网站的建设模板有哪些如何制作网页表格
  • 海外短剧APP时区适配:全球内容更新时间智能调度与用户通知策略
  • 射频T/R组件?接收数字式T/R组件与数字式T/R组件?
  • 软考 系统架构设计师系列知识点之杂项集萃(183)
  • 黑龙江生产建设兵团知识网站网站认证打款怎么做分录
  • 凡科网站登录入wordpress入门教程视频教程
  • 【双机位A卷】华为OD笔试之【回溯】双机位A-找到它【Py/Java/C++/C/JS/Go六种语言】【欧弟算法】全网注释最详细分类最全的华子OD真题题解
  • wordpress结婚模板百度seo详解
  • win2003怎么做网站做装修公司的网站
  • 开发一款连接带有GEM/SECS协议软件的设备(五)
  • 大连市营商环境建设局网站太原建站seo
  • 串口调试数据(2)---之MQTT/WS透传及配套相关服务端介绍