细节总结(一)

self.XXX与_XXX的区别
  • 通过self.XXX得到的数据相当于调用get函数取值,等价于[self XXX];而通过_XXX获取的是自己的实例变量,直接对变量进行操作,并未调用get函数。所以,通过懒加载方式初始化的变量只能通过self.XXX调用,否则可能会存在未初始化的问题。
  • self.xxx是对属性的访问;而_xxx是对局部变量的访问。在使用self.xxx时是调用一个getter方法。会使引用计数加一,而_xxx不会使用引用技术加一的。
  • 所以,使用self.XXX是更好的选择,因为这样可以兼容懒加载,同时也避免了使用下滑线的时候忽略了self这个指针,后者容易在block中造成循环引用。同时,使用 _XXX是获取不到父类的属性,因为它只是对局部变量的访问。
颜色处理:
  • RGB:
    UI给的色彩无法直接获取的时候,可以通过mac自带的系统工具——数码测色计,获取对应的RGB颜色。
[UIColor colorWithRed:242/255.0 green:242/255.0 blue:242/255.0 alpha:1 ];
  • 十六进制颜色:
    若颜色是写死的,可以在网上找一个十六进制和RGB颜色转换器把十六进制转换成RGB颜色;另外,可以写一个Category直接用十六进制字符串定义颜色:
    UIColor+Hex.h:
#import <UIKit/UIKit.h>@interface UIColor (Hex)+ (UIColor*)colorWithHex:(NSString *)hexString alpha:(CGFloat)alphaValue;+ (UIColor*)colorWithHex:(NSString *)hexString;+ (NSString *)hexFromUIColor: (UIColor*)color;@end

UIColor+Hex.m:

#import "UIColor+Hex.h"@implementation UIColor (Hex)+ (UIColor*)colorWithHex:(NSString *)hexString alpha:(CGFloat)alphaValue
{NSString *tmpHexString = [[hexString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];if ([tmpHexString hasPrefix:@"#"]) {tmpHexString = [hexString stringByReplacingOccurrencesOfString:@"#" withString:@"0x"];}else if (![tmpHexString hasPrefix:@"0x"]){tmpHexString = [NSString stringWithFormat:@"0x%@", tmpHexString];}if (tmpHexString.length != 8) {return [UIColor clearColor];}long colorLong = strtoul([tmpHexString cStringUsingEncoding:NSUTF8StringEncoding], 0, 16);return [UIColor colorWithRed:((float)((colorLong & 0xFF0000) >> 16))/255.0green:((float)((colorLong & 0xFF00) >> 8))/255.0blue:((float)(colorLong & 0xFF))/255.0 alpha:alphaValue];
}+ (UIColor*)colorWithHex:(NSString *)hexString
{return [UIColor colorWithHex:hexString alpha:1.0];
}+ (NSString *)hexFromUIColor: (UIColor*) color {if (CGColorGetNumberOfComponents(color.CGColor) < 4) {const CGFloat *components = CGColorGetComponents(color.CGColor);color = [UIColor colorWithRed:components[0]green:components[0]blue:components[0]alpha:components[1]];}if (CGColorSpaceGetModel(CGColorGetColorSpace(color.CGColor)) != kCGColorSpaceModelRGB) {return [NSString stringWithFormat:@"#FFFFFF"];}return [NSString stringWithFormat:@"#%X%X%X", (int)((CGColorGetComponents(color.CGColor))[0]*255.0),(int)((CGColorGetComponents(color.CGColor))[1]*255.0),(int)((CGColorGetComponents(color.CGColor))[2]*255.0)];
}@end

然后通过[UIColor colorWithHex:_sectionColorArray[section]]直接定义颜色。

转载于:https://www.cnblogs.com/wust-zxl/p/6475932.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis 安装错误 jemalloc.h: No such file or directory

为什么80%的码农都做不了架构师&#xff1f;>>> 错误描述 [rootmysql-rtb-slave redis-4.0.1]# make && make install cd src && make all make[1]: Entering directory /usr/local/src/redis-4.0.1/srcCC Makefile.dep make[1]: Leaving director…

OAuth,JWT ,OIDC你们搞得我好乱啊

hi&#xff0c;这里是桑小榆&#xff0c;这次分享的不是生活文&#xff0c;而是技术文。基于OAuth2.0协议的授权认证&#xff0c;初次接触授权认证知识的时候&#xff0c;出现了不少热门名词&#xff0c;“OAuth”&#xff0c;“JWT”&#xff0c;“OIDC”&#xff0c;这简直让…

MyEclipse快捷键大全

存盘 Ctrls(肯定知道) 注释代码 Ctrl/ 取消注释 Ctrl\(Eclipse3已经都合并到Ctrl/了) 代码辅助 Alt/ 快速修复 Ctrl1 代码格式化 CtrlShiftf 整理导入 CtrlShifto 切换窗口 Ctrlf6 <可改为ctrltab方便> ctrlshiftM 导入未引用的包 ctrlw 关闭单个窗口 F3 跳转到类、变量的…

软件测试技术第二次作业——程序错误的判断

在做作业之前我们首先要明确软件测试过程中的几个名词&#xff1a; Fault&#xff1a;在软件测试中&#xff0c;fault是指程序中静态的缺陷&#xff0c;也就是指在程序中存在的编程错误。 Error&#xff1a;在软件测试中&#xff0c;error是指由于程序中存在的fault而产生的不正…

【GlobalMapper精品教程】006:Excel等表格(.xls)或文本(.txt .csv)坐标文件生成矢量点

【拓展阅读】: 【QGIS入门实战精品教程】4.5:QGIS打开Excel中的点坐标,并生成矢量文件 【ArcGIS微课1000例】0022:ArcGIS点(点坐标)自动连成线操作案例教程 【ArcGIS风暴】ArcGIS 10.2导入Excel数据X、Y坐标(经纬度、平面坐标),生成Shapefile点数据图层 【ArcGIS风暴】…

Java编程思想 学习笔记1

一、对象导论 1.抽象过程   Alan Kay曾经总结了第一个成功的面向对象语言、同时也是Java所基于的语言之一的Smalltalk的五个基本特性&#xff0c;这些特性表现了纯粹的面向对象程序设计方式   1&#xff09;万物皆对象。   2&#xff09;程序是对象的集合&#xff0c;它们…

不只是日志收集,项目监控工具Sentry的安装、配置、使用

前言上一篇文章介绍了ExceptionLess这个日志收集系统&#xff1a;ExceptionLess的安装、配置、使用由于ExceptionLess官方提供的客户端只有.Net/.NetCore平台和js的&#xff0c;本文继续介绍另一个日志收集系统&#xff1a;SentrySentry 是一个实时事件日志记录和聚合平台。&am…

64个数据分析常用术语

导读&#xff1a;本篇文章&#xff0c;我们来讲讲数据分析常用语。 内容综合整理自网络 01 绝对数和相对数 绝对数&#xff1a;是反应客观现象总体在一定时间、一定地点下的总规模、总水平的综合性指标&#xff0c;也是数据分析中常用的指标。比如年GDP&#xff0c;总人口等等。…

redis 的bitmap 开源包 bitmapist的应用

2019独角兽企业重金招聘Python工程师标准>>> 原理&#xff1a;http://my.oschina.net/u/1458120/blog/545224 bitmap包&#xff1a;https://github.com/Doist/bitmapist 要求redis> 2.6.0 bitmapist-master.zip 安装自己下载解压 python setup.py install &…

Django Views(视图函数)

http请求中产生两个核心对象&#xff1a; http请求&#xff1a;HttpRequest对象 http响应&#xff1a;HttpResponse对象 所在位置&#xff1a;django.http 之前我们用到的参数request就是HttpRequest 检测方法&#xff1a;isinstance(request,HttpRequest) 1 HttpRequest对象…

Android 4 +https(如何启动TLS1 1 and TLS1 2)

之前用的网络请求框架是鸿洋的OkHttpUtils&#xff0c;网络请求在5.0手机上使用https没有问题&#xff0c;但是最近突然使用了一个4.4的系统&#xff0c;就报错SSLException ....咋地咋地 然后 我们的副总给我们找一个博客&#xff0c;如何解决4.系统出现的这个问题&#xff0…

massCode 一款优秀的开源代码片段管理器

本文将介绍一款适合程序员使用的个人代码片段管理工具 massCode[1]。massCode小时候&#xff0c;也许我们每个人都会被老师要求有一个到处摘录优美句子段落的作文素材本 —— 采蜜集。不可否认&#xff0c;这对我们的写作水平的提高确实有很大的帮助。对开发人员来说当然也需要…

【ArcGIS Pro微课1000例】0021:Win10系统ArcGIS Pro3.0.1安装教程(附ArcGIS Pro下载)

本文讲解Win10系统上ArcGIS Pro3.0.1安装教程,附软件包下载。 文章目录 一、 软件安装步骤1. 安装.net Runtime 62. 安装ArcGIS Pro3. 安装中文语言4. 删除代理二、软件下载地址一、 软件安装步骤 [软件名称]: ArcGIS Pro 3.0.1 [软件大小]:4.33GB [安装环境]: Win 11/Win …

iOS逆向工程——非越狱调试

其实iOS的逆向分析业界已经十分成熟了&#xff0c;网上也有许多有趣的尝试(一步一步实现iOS微信自动抢红包(非越狱)。本文着重于如何在非越狱机器上进行调试&#xff0c;出于学习及总结的目的&#xff0c;记录于此。 本文以破解游戏梦幻西游为例&#xff0c;逐步讲解整个调试流…

[转]2022 Flutter 宣布发布 Windows 正式版

原文链接&#xff1a; https://medium.com/flutter/announcing-flutter-for-windows-6979d0d01fed 自从推出 Flutter 以来&#xff0c;我们一直专注于为漂亮的定制应用提供跨平台解决方案&#xff0c;这些应用被编译为机器代码并充分利用设备的底层图形硬件功能。 今天这一愿景…

电脑经常弹出“不支持的硬件”解决办法

电脑经常弹出“不支持的硬件”解决办法。 通过微软官方查证,这是由于以上处理器需要最新的Windows10系统才会这样子的,而大多出现该提示的都安装了Win7或是Win8.1系统。 来至微软官方的说明 此错误出现的原因是各代新处理器要求最新Windows版本以获得支持。 例如,Windows 1…

使用 Web API 上传和下载多个文件

原文作者&#xff1a;Jay Krishna Reddy原文链接&#xff1a;https://www.c-sharpcorner.com/article/upload-and-download-multiple-files-using-web-api/翻译&#xff1a;沙漠尽头的狼&#xff08;谷歌翻译加持&#xff0c;文中版本使用.NET 6升级&#xff09;---正文开始---…

详解T-SQL的联接机制

T-SQL的联接分三种类型&#xff1a; 交叉联接 ( cross join ) 内部联接 (inner join) 外部联接 (outer join) 每种联接在逻辑上经历不同的阶段&#xff0c;分为笛卡尔乘积、筛选、添加外部行&#xff0c;如图&#xff1a; 联接类型 阶段 交叉联接 笛卡儿乘积 内部联接…

Android FrameWork学习(一)Android 7 0系统源码下载 编译

最近计划着研究下 Android 7.0 的系统源码&#xff0c;之前也没做过什么记录&#xff0c;这次正好将学习的内容记录下来&#xff0c;方便以后复习巩固。 既然要学习我们的系统源码&#xff0c;那我们第一步要做的就是下载源码并进行编译了。 #硬件环境要求 ###1. 编译环境 按照…