`
zsjg13
  • 浏览: 144586 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

1.4 Code Property Assessors

    博客分类:
  • ios
 
阅读更多

1、问题

自定义类需要表示它所要建模的实体的属性。

 

2、解决方案

需要在类接口中声明属性,然后在类实现中实现这些属性。

 

3、原理

在自定义类的头文件中,你需要两个东西:保存属性的实例变量值、属性声明。例如:

#import <Foundation/Foundation.h>

@interface Car : NSObject {

@private

    NSString *name_;

}

@property(strong) NSString *name; 

@end

 

这里的本地实例叫做name_,属性的声明以@property开头。注意在类名NSString前有(strong),strong就是property attribute,strong只是许多property描述符中的一个。

 

=============================================================================================

Table 1-2. Property Attributes 

Attribute  Description 

readwrite  The property needs both a getter and a setter (default). 

readonly  The property only needs a getter (objects can’t set this property). 

strong  The property will have a strong relationship (the object will be retained). 

weak  The property will be set to nil when the destination object is deallocated. 

assign  The property will simply use assignment (used with primitive types). 

copy  The property returns a copy and must implement the NSCopying protocol. 

retain  A retain message will be sent in the setter method. 

nonatomic  This specifies that the property is not atomic (not locked while being accessed). 

==============================================================================================

 

在实现类中实现属性,编写所谓的getters和setters。

#import "Car.h"

@implementation Car

-(void)setName:(NSString *) name {

    name_ = name;

}

-(NSString *) name {

    return name_;

}

@end

 

// 调用代码

car.name = @"Sports Car";

NSLog(@"car is %@", car.name);

 

Or you can use properties with standard Objective-C messaging: 

[car setName:@"New Car Name"]; 

NSLog(@"car.name is %@", [car name]);

 

Dot notation(第1个例子)是一个相对新一些的Objective-C特性,Objective-C 2.0引入。优势是在其他编程语言中,这很常见,所以你对此很熟悉。

第2种写法是平常的Objective-C messaging,也常常用。

 

选择哪个,就要根据你的个人偏好。

 

4、代码

#import "Car.h" 

int main (int argc, const char * argv[]){ 

        @autoreleasepool { 

                Car *car = [[Car alloc] init]; 

                car.name = @"Sports Car"; 

                NSLog(@"car.name is %@", car.name); 

 

                [car setName:@"New Car Name"]; 

                NSLog(@"car.name is %@", [car name]); 

 

        } 

        return 0; 

 

 

分享到:
评论

相关推荐

    The relative importance of mental age and selected assessors of auditory and visual perception in the metropolitan readiness test

    The relative importance of mental age and selected assessors of auditory and visual perception in the metropolitan readiness test 136 RICHARD J. HESS AND ROLAND T. HAHN I1 The HSRS most accurately...

    心理年龄和选定的听觉和视觉感知评估员在都市准备测试中的相对重要性

    The relative importance of mental age and selected assessors of auditory and visual perception in the metropolitan readiness test 136 RICHARD J. HESS AND ROLAND T. HAHN I1 The HSRS most accurately...

    评估者抓取工具:一个项目,用于评估评估者的网站并使数据可用于高级查询

    评估者刮板该项目的目标是将来自奥尔良教区评估办公室的数据转换为更适合数据分析的格式。开发环境设置先决条件您必须安装Python 3。 您可以下载。首先设置一个pythonpython3 -m venv .venv. .venv/bin/activate用...

    基于Java的家庭理财系统设计与开发-金融管理-家庭财产管理-实用性强

    内容概要:文章探讨了互联网时代的背景下开发一个实用的家庭理财系统的重要性。文中分析了国内外家庭理财的现状及存在的问题,阐述了开发此系统的目的——对家庭财产进行一体化管理,提供统计、预测功能。系统涵盖了家庭成员管理、用户认证管理、账单管理等六大功能模块,能够满足用户多方面查询及统计需求,并保证数据的安全性与完整性。设计中运用了先进的技术栈如SSM框架(Spring、SpringMVC、Mybatis),并采用MVC设计模式确保软件结构合理高效。 适用人群:对于希望科学地管理和规划个人或家庭财务的普通民众;从事财务管理相关专业的学生;有兴趣于家政学、经济学等领域研究的专业人士。 使用场景及目标:适用于日常家庭财务管理的各个场景,帮助用户更好地了解自己的消费习惯和资金状况;为目标客户提供一套稳定可靠的解决方案,助力家庭财富增长。 其他说明:文章还包括系统设计的具体方法与技术选型的理由,以及项目实施过程中的难点讨论。对于开发者而言,不仅提供了详尽的技术指南,还强调了用户体验的重要性。

    弹性盒子Flexbox布局.docx

    弹性盒子Flexbox布局.docx

    网络财务系统 SSM毕业设计 附带论文.zip

    网络财务系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B

    联想电脑的bios设置

    联想电脑的bios设置、图文都有

    1_教务处关于云南师范大学2024年大学生科研训练基金项目立项申报工作的通知 (1).zip

    1_教务处关于云南师范大学2024年大学生科研训练基金项目立项申报工作的通知 (1).zip

    基于Python实现的自然语言处理大作业-方面情感分析+源代码+文档说明+实验报告

    <项目介绍> 基于Python实现的自然语言处理大作业——方面情感分析+源代码+文档说明+实验报告 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途

    基于Python的Web安全扫描软件设计与实现

    内容概要:本文探讨了使用Python语言构建一个集成漏洞扫描系统的可能性,旨在解决中小型网络运维人员面临的网络安全挑战。系统采用B/S架构,使用Django框架实现快速开发,Docker容器承载扫描工具Nmap。文中介绍了项目的背景、国内外研究现状、需求分析、系统设计、实现过程和测试结果。 适合人群:初级运维人员和网络安全研究者。 使用场景及目标:系统平台用于检测Web应用程序的安全漏洞,提供轻量级、学习成本低的解决方案,提升网络安全管理水平。 其他说明:虽然系统实现了预期功能,但仍存在一些不足,如架构相对简单、功能单一等问题,未来可以进一步优化。

    【java毕业设计】教学质量评价系统源码(ssm+jsp+mysql+说明文档+LW).zip

    功能说明: 功能:个人中心、公告信息管理、学院管理、学生管理、教师管理、督导管理、教师信息管理、学生评教管理、督导评教管理等功能模块。 环境说明: 开发语言:java 框架:ssm jdk版本:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse 部署容器:tomcat7+

    【超强组合】基于VMD-龙格库塔优化算法RUN-Transformer-GRU的光伏预测算研究Matlab实现.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    【小程序+小程序API+后台商城管理+运行指导教程】springboot+mysql实现的供货商城系统

    功能大概包括:商品管理,商品多规格属性管理,商品分类,商品类型,商品品牌,商品订单,会员信息,优惠券,订单管理,加入进货车,立即下单,我的收藏等等 第一:商城后台,功能大概包括:商品管理,商品多规格属性管理,商品分类,商品品牌,商品订单,会员信息等等。 涉及到技术: springboot+Thymeleaf+mybatis 第二:小程序API,涉及到技术: springboot+mybatis-plus+jwt+mapstruct+lombok+redis+swagger 第三:mpvue小程序,小程序主要是用 mpvue 框架开发 mpvue 小程序运行步骤: 1、安装node环境 node 是8版本,这边开发版本是8.12.0,由于mpvue属于老牌小程序框架了,目前这边验证的只是这个node版本, 当然新的小程序UNIAPP发布之后没用此限制拉 2、设置npm淘宝镜像 npm set registry https://registry.npm.taobao.org/ 3、npm install 4、npm run dev

    基于 Java 和 Spring 框架的校园物品维修管理系统的开发与设计

    内容概要:本文详细介绍了基于 Java 和 Spring 框架的校园物品维修管理系统的开发与设计。该系统采用 B/S 架构,主要包括管理员、使用者和维修者三类用户的权限管理。系统提供了用户管理、设备管理和维修管理等功能,通过数据库操作确保数据安全性和系统扩展性。开发中采用了面向对象的设计思想和技术手段,提高了系统的可靠性和用户体验。 适合人群:具有一定 Java 基础的软件开发人员和项目管理者。 使用场景及目标:主要用于高校或研究机构中,对校园内各类设备的使用和维修情况进行高效管理,提升设备使用率和维修效率。 其他说明:系统的设计与实现详细描述了需求分析、总体设计、详细设计以及测试过程,为后续的开发和优化提供了全面的参考。

    【MATLAB代码】二维平面上的TDOA,使用加权最小二乘法,不限制锚点数量(锚点数量&gt;3即可)

    该MATLAB代码使用两步加权最小二乘法通过TDOA技术实现了二维目标定位。它通过随机生成的锚点和目标位置进行模拟,展示了如何通过迭代优化算法来提高位置估计的准确性。代码结构清晰,适合用于理解和实现基于TDOA的定位算法。

    【超强组合】基于VMD-鸽群优化算法PIO-Transformer-LSTM的光伏预测算研究Matlab实现.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    【超强组合】基于VMD-飞蛾扑火优化算法MFO-Transformer-BiLSTM的光伏预测算研究Matlab实现.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    resnet模型-深度学习CNN训练识别蔬菜种类-不含数据集图片-含逐行注释和说明文档.zip

    本代码是基于python pytorch环境安装的。 下载本代码后,有个环境安装的requirement.txt文本 首先是代码的整体介绍 总共是3个py文件,十分的简便 本代码是不含数据集图片的,下载本代码后需要自行搜集图片放到对应的文件夹下即可 需要我们往每个文件夹下搜集来图片放到对应文件夹下,每个对应的文件夹里面也有一张提示图,提示图片放的位置 然后我们需要将搜集来的图片,直接放到对应的文件夹下,就可以对代码进行训练了。 运行01生成txt.py,是将数据集文件夹下的图片路径和对应的标签生成txt格式,划分了训练集和验证集 运行02CNN训练数据集.py,会自动读取txt文本内的内容进行训练,这里是适配了数据集的分类文件夹个数,即使增加了分类文件夹,也不需要修改代码即可训练 训练过程中会有训练进度条,可以查看大概训练的时长,每个epoch训练完后会显示准确率和损失值 训练结束后,会保存log日志,记录每个epoch的准确率和损失值 最后训练的模型会保存在本地名称为model.ckpt 运行03pyqt界面.py,就可以实现自己训练好的模型去识别图片了

    基于“分治法”的排序算法.zip

    基于“分治法”的排序算法

Global site tag (gtag.js) - Google Analytics