【IOS】 readonly IOS下实战入门

当非常多XXX.h 文件属性YY设计中,对外的设计是 YY(readonly) 时。外界便不能改动该属性,

同一时候问题也来了,该XXX类的内部也不能改动改YY属性了。你瞬间凌乱过么。

。。Y_Y

然后就发现例如以下两种方法:

一:指针

永远不要小看指针的力量,在内部能够用 obj->_YY 的方式改动YY属性了,这样的方式也确实

有点让人YY

    // 瞬间变红有木有
//    self.YYname = @"skyming";

    self->_YYname = @"skyming";
    或 _YYname = @"skyming";
 

二:又一次声明属性

貌似非常正规的样子,假设自己写的类属性有不多,公司也没有什么其它代码规范。直接放在

.m 中又一次声明一遍就好了

对照下吧 .h 中的声明

@interface XXX : NSObject

@property (nonatomic, readonly, strong) NSString *YYname;
@end
.m 中的声明
@interface XXX ()

@property (nonatomic, readwrite, strong) NSString *YYname;
@end

假设你同一个属性。.h 文件、 .m 文件里都是readonly ,就会报错

当然假设属性多了,或者在SDK中的话直接就再写个Private的.h 吧

并且非常多公司内部的SDK中也是这么搞的、、、

假设你们公司的SDK是这样,就默默点赞吧, Y_Y

时间: 2024-12-29 01:20:32

【IOS】 readonly IOS下实战入门的相关文章

iOS 即时通讯,从入门到 “放弃”?

原文链接:http://www.jianshu.com/p/2dbb360886a8 本文会用实例的方式,将 iOS 各种 IM 的方案都简单的实现一遍.并且提供一些选型.实现细节以及优化的建议. —— 由宇朋Look分享 前言 本文会用实例的方式,将iOS各种IM的方案都简单的实现一遍.并且提供一些选型.实现细节以及优化的建议. 注:文中的所有的代码示例,在github中都有demo:iOS即时通讯,从入门到“放弃”?(demo)可以打开项目先预览效果,对照着进行阅读. 言归正传,首先我们来总

iOS开发之Auto Layout入门

随着iPhone6与iOS8的临近,适配的问题讲更加复杂,最近学习了一下Auto Layout的使用,与大家分享.  什么是Auto Layout? Auto Layout是iOS6发布后引入的一个全新的布局特性,其目的是弥补以往Autoresizing在布局方面的不足之处,以及未来面对更多尺寸适配时界面布局可以更好的适应. 为什么要用Auto Layout? Autolayout能解决不同屏幕(iPhone4,iPhone5,iPad...)之间的适配问题. 在iPhone4时代开发者只需要适

【IOS】IOS快速入门之OC语法

Objective-C 是 C 语言的超集 您还可以访问标准 C 库例程,例如在 stdlib.h 和 stdio.h 中声明的那些例程. Objective-C 还是一种非常动态的程序设计语言,而且这种动态是其最大优势.这种动态体现在它允许在运行应用程序时(即运行时)才去确定其行为,而不是在生成期间就已固定下来.因此,Objective-C 的动态机制让程序免受约束(编译和链接程序时施加的约束):进而在用户控制下,将大多数符号解析责任转移到运行时. 当您想要在源代码中包括头文件时,请在头文件或

《iOS 7 应用开发实战详解》

<iOS 7 应用开发实战详解> 基本信息 作者: 朱元波    管蕾 出版社:人民邮电出版社 ISBN:9787115343697 上架时间:2014-4-25 出版日期:2014 年5月 开本:16开 页码:382 版次:1-1 所属分类:计算机 > 软件与程序设计 > 移动开发 > iPhone 更多关于>>><iOS 7 应用开发实战详解> 编辑推荐 新版本 全面讲解了iOS 7开发的各种技术 热门技术 基本控件.数据存储.多场景处理.界

iOS 7.1下itms-services在线安装失败的解决方法

前段时间,接到客户的求助,主要是关于无法通过safari在线安装企业级应用的问题.经过一系列测试都没有发现相同现象,最后发现客户使用了还原的功能,把iPad的iOS升级到了7.1.网上搜索了一下,发现从iOS7.1开始,之前使用itms-services://URL方式在线安装ipa文件的方法都失效了,主要表现为在点击安装的时候,会报错为:"无法安装应用程序,因xxx.com的证书无效". 主要原因是苹果公司在iOS 7.1中修改了manifest.plist文件的访问协议,把原来的h

iOS开发——完整项目实战OC篇&amp;百思不得姐第四天

iOS开发——完整项目实战OC篇&百思不得姐第四天 上午 一:自定义按钮使用九宫格布局 二:控件不能点击 三:获取用户点击了那个按钮 四:调整按钮内部控件的位置:主流->上下 五:不能直接使用self.navigationController中或者View中获取导航控制器 方法一: 方法二: 六:布局取整 1 // 总行数 2 3 // NSUInteger rows = sqaures.count / maxCols; 4 5 // if (sqaures.count % maxCols)

iOS: ARC &amp; MRC下string内存管理策略探究

ARC & MRC下string内存管理策略探究 前两天跟同事争论一个关于NSString执行copy操作以后是否会发生变化,两个人整了半天,最后写代码验证了一下,发现原来NSString操作没我们想的那么简单,下面就让我们一起看看NSString和NSMutableString在MRC下执行retain,copy,mutableCopy,以及ARC下不同的修饰__weak, __strong修饰赋值究竟发生了什么. 一.验证代码如下: - (void)testStringAddress { i

关于ios的safari下,页面底部弹出登陆遮罩层,呼出软键盘时 问题解决

前阵子遇到了一个问题,就是手机端页面弹出遮罩+底部登陆的弹出层. 一般情况下就直接给fixed固定定位了,然而做测试时发现了一个很大的问题 iOS的safari下,固定定位会跑到整个页面的最底部,而不是当前页的最底部. 查了好多百度然而还是没有找到有用的解决方案,后来问了一位前端的大神,大神说这种情况下,需要区分两种状态, 一是默认状态,即 除了safari之外的其他浏览器(需要判断一下浏览器是否为safari) 二是 safari浏览器状态下,(由于公司只要求测UC,QQ浏览器,顾,发现  在

iOS UIModalPresentationFormSheet风格下的键盘隐藏

1. 在UIModalPresentationFormSheet(iPad device, without a UINavigationController)下的视图中,如果使用 [inputView resignFirstResponder]; 是不能把Keyboard收起的,需要使用以下的方式: A: @try     {         Class UIKeyboardImpl = NSClassFromString(@"UIKeyboardImpl");         id