swift 如何使用OC中宏的功能
swift中没有宏的概念,那么我们在swift使用宏的功能来提高效率呢?
一、使用关键字 let 来声明一个常量 存储相应的值,以下代码声明了常量 myColor 来存储一种指定的颜色
- let myColor = UIColor(red: 0.2, green: 0.7, blue: 0.1, alpha: 1.0)
判断当前的系统版本
- let IOS9 = (UIDevice.currentDevice().systemVersion as NSString).doubleValue
使用myColor,注意,使用时在常量名字前加self.
- vc1.view.backgroundColor = myColor
但是怎么获得随机颜色呢?
二、由于swift中可以用点语法来调用函数,非常方便,所以用声明函数的方法来定义 “宏”
每次调用下面的方法都会返回一个随机的颜色
- func randomColor() ->UIColor?{
- return UIColor(red: CGFloat((Double(arc4random()) % 256) / 255.0), green: CGFloat((Double(arc4random()) % 256) / 255.0), blue: CGFloat((Double(arc4random()) % 256) / 255.0), alpha: 1.0)
- }
使用 “宏”
- vc2.view.backgroundColor = self.randomColor()
注意 如果用let声明一个常量来存储一个随机颜色,只会在每次启动程序时颜色是变化的,程序启动后,常量存储的是一个固定的颜色。
swift 如何使用OC中宏的功能的更多相关文章
- Swift学习笔记 - OC中关于NSClassFromString获取不到Swift类的解决方案
在OC和Swift混编的过程中发现在OC中通过NSClassFromString获取不到Swift中的类,调研了一下发现问题所在,下面是我的解决方案: 问题的发现过程 UIViewController ...
- Swift 闭包即OC中的Block
- 闭包的定义 1.提前准备好的代码 2.在需要的时候执行 3.可以当做参数传递 // 1.最简单的闭包 // () -> () 没有参数,没有返回值的函数 // 如 ...
- 如何在swift中实现oc中的分类
在oc中为了增强已有类的功能,我们经常使用分类.使用分类,我们可以在不破坏原有类的结构的前提下,对原有类进行模块化的扩展. 但是在swift中没有分类这种写法了.相对应的是swift中只有扩展(Ext ...
- 创建工程常量 (OC中的宏定义)
1.oc创建宏 文件 2.swift创建 常量文件 在swift中, 并非是预编译代码替换, 而是设置全局常量, 简单宏, 直接let 加常量名即可
- Swift: 比较Swift中闭包传值、OC中的Block传值
一.介绍 开发者对匿名函数应该很清楚,其实它就是一个没有名字的函数或者方法,给人直观的感觉就是只能看到参数和返回值.在iOS开发中中,它又有自己的称呼,在OC中叫Block代码块,在Swift中叫闭包 ...
- iOS开发--Swift 如何完成工程中Swift和OC的混编桥接(Cocoapods同样适用)
由于SDK现在大部分都是OC版本, 所以假如你是一名主要以Swift语言进行开发的开发者, 就要面临如何让OC和Swift兼容在一个工程中, 如果你没有进行过这样的操作, 会感觉异常的茫然, 不用担心 ...
- 在OC中调用Swift类中定义delegate出现:Property 'delegate' not found on object of type ...
找了许久没找到答案, 在下面的链接中, 我解决了这个问题: http://stackoverflow.com/questions/26366082/cannot-access-property-of- ...
- 在 OC 中调用 Swift 代码
1.在 Objective-C 项目中使用 Swift 代码 1)在 OC 项目中创建 .Swift 文件,文件中的格式为其本有的格式. 2)Xcode 提示是否创建 Objective-C brid ...
- swift和OC中frame的小差异
//1.0 OC中 CGRect .CGPoint.CGSize 的结构如下: struct CGRect { CGPoint origin; CGSize size; }; struct CGPoi ...
随机推荐
- python编译以及反编译
在Python2.3之前Python自带反编译的工具,高版本的貌似这个反编译的已经不能用了. 据说是在Python2.7上最好用的反编译工具uncompyle 代码地址 http://github.c ...
- Cookie帮助类
using System; using System.Collections.Generic; using System.Text; using System.Web; namespace AIMSC ...
- JVM内存结构之一--总体介绍
Java 虚拟机在执行Java程序的时候会把它管理的内存区域划为几部分,这一节我们就来解析一下Java的内存区域. 有的人把JVM管理的内存简单地分为堆内存和栈内存,这样分未免有些太肤浅了. Java ...
- lightoj 1016
水题,排个序直接搞. #include<cstdio> #include<string> #include<cstring> #include<iostrea ...
- Python:itertools模块
itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生成器和生成器表达式)的函数联合使用. ch ...
- 2.1CUDA-Thread
在HOST端我们会分配block的dimension, grid的dimension.但是对应到实际的硬件是如何执行这些硬件的呢? 如下图: lanuch kernel 执行一个grid. 一个Gri ...
- dataStructure@ Binary Search Tree
#include<iostream> #include<cstdio> #include<cstring> #include<limits> #incl ...
- HDU-4628 Pieces 搜索 | DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4628 数据不大,枚举本质.首先对枚举出回文串,然后用DP或者搜索,这里因为层数不多,用bfs比较好,或 ...
- [OC Foundation框架 - 5] NSString的常用方法
NSString *s1 = "; 1.比较 使用 == 号比较的是字符串地址 NSString *s4 = @"abcdefg"; NSStrin ...
- android http 通信(java原生类库实现)
get方式 private void doGet(){ URL httpurl = new URl(url); HttpURLConnection conn = (HttpURLConnection) ...