• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ios > 新手关于声明属性@property的问题,求大神

新手关于声明属性@property的问题,求大神

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了我的世界新手变大神,奥奇传说新手变大神,我的世界从新手到大神,我的世界新手到大神,lol从新手到大神等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 新手关于声明属性@property的问题,求大神
描述:

class

声明属性的的使用场景了解了,简单的说就是替代set get。   语法合适是 @property(特性1,特性2……)变量类型 变量名;     这边我不了解的就是这个括号里的“特性”     set方法的这几种特性有什么不同吗,用法是怎样的呢?或者说什么情况下使用?    还有  一个括号里是不是只能有两个特性 。  求解惑 新手关于声明属性@property的问题,求大神


解决方案1:

@property(特性1,特性2……),nonatomic 一般是固定,后面的strong,copy之类的是根据你要定义的属性的类型而定。比如你要定义一个NSString类型,特性就是copy。整数、字符、数组、view之类的都要有之对应的特性。

解决方案2:

1.  set方法的几种特性
这里我们需要分两个阶段来说明,ARC(自动引用计数)和MRC(手动引用计数),ARC是iOS5才出现的。
MRC模式:
assgin  用于值类型,就只是基本的赋值,比如基本数据类型:int,float,double,NSInteger等;还有就是防止产生循环引用的对象,比如delegate,不过这里需要程序员特别当心,当delegate被释放后,需要手动置为nil,否则再使用delegate回调就会崩溃
retain   用于对象,也就相当于指针对象。它对传入的对象进行引用计数加1的操作,只要计数不为0,就不释放,可以安全使用
这个相比C++是一个巨大的进步,C++中很多crash都是指针的使用不当造成的,因为C++里指针对象的创建、引用、释放操作,都是程序员手动实现,稍不留意就会用到一个野指针什么的,幸好后面有了智能指针的概念,其实它就是引用计数的思想。
copy 也是用于对象,不过它的目的是"赋值对象"和"被复制对象"不要相互影响;retain的话只是计数+1,其实是指向同一个对象,所以他们会相互影响的,在这个地方修改了它的值,其他使用它的地方就能看到修改后的值的效果。copy有深拷贝和浅拷贝,这个自己具体看下实例,理解更方便
ARC模式:
strong  跟retain的意思相同并产生相同的代码,但是语意上更好更能体现对象的关系.
weak   跟assgin的意思相同。好处就是:当该对象引用计数为0时,即该对象被释放后,用weak声明的实例变量指向nil,即实例变量的值为0,不会出现僵尸对象,即使向它发送消息,程序也不会崩溃,因为iOS中向nil对象发送消息不会crash。delegate 和 Outlet 一般用weak来声明
copy 同上,跟MRC模式含义一样
2. 一个括号里是不是只能有两个特性?
括号里的特性可以一个,两个或者多个。包括原子性,存取器控制,内存管理。
@property(nonatomic) int number;  其实还有两个默认值,存取控制器:readwrite, 内存管理:assgin
@property (nonatomic, setter = mySetter:,getter = myGetter ) NSString *name; 重定义setter,getter

解决方案3:

不必太纠结,需要什么直接写,然后在方法里可以直接用self.

解决方案4:

帮你写好set get方法

解决方案5:

可以有多个属性,那里面的除了readonly一般对set和get没什么影响,get那个一般是为了给bool值赋值改变名字用的


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 新手关于声明属性@property的问题,求大神

相关文章

  • 2017-06-05 下载了最新的XCode8但是打包上传项目不出构建版本
  • 2017-06-05 IPhone不能弹出键盘,在系统页面下
  • 2017-06-05 vmware虚拟机教程ios开发用vmware虚拟机,能否真机调试?
  • 2017-06-05 xcodearchiveXcode文件操作
  • 2017-06-05 sidebar为什么要将侧滑栏设成rootviewcontroller
  • 2017-06-05 ios如何用UITextView或者WebView进行图文视频音频混编?
  • 2017-06-05 ViewController能不能在自定义view中获得他的frame?
  • 2017-06-05 给textview添加placeholder属性问题
  • 2017-06-05 TheBigNerdRanchGuideiOSProgramming这本书有人看过么?怎么样?
  • 2017-06-05 有什么办法可以去掉UIPickView中的3D动画效果?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • commond+B后,'#import<openssl/asn1h>'filenotfound;
    • App实现http长连接技术上可行吗?有必要吗?有哪些优缺点?
    • 从xib载入view,如何让xib生成的视图,随着superview的大小改变大小,不要有元素丢失
    • 运行swift代码出错,是多个相同的错误,请见图。
    • 爱爱图片全部过程图片七牛上传图片过程中,会自动终止?
    • 怎么实现UICollectionView放大,并且左右可以拖动
    • iOSAPP跳到微信关注提示错误求知道的大神指教
    • 关于实时捕获摄像头预览视图图像的问题
    • 超碰vip账号获取器如何获取UIWebview中超链接的位置
    • 为什么有的书说在初始化方法和dealloc方法总是应该通过实例变量来读写数据?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有