ios-为什么cocoa里可以直接使用.Normal 类似语法,自己却不能写?

问题描述

为什么cocoa里可以直接使用.Normal 类似语法,自己却不能写?

如题,swift中可以如此使用。Normal

var button:UIButton = UIButton(frame:CGRectMake(10,10,10,10))
button.setTitle("Button", forState:.Normal)

查看.Norma源码,则是 这样一个结构体:
struct UIControlState : RawOptionSetType {
init(_ rawValue: UInt)
init(rawValue: UInt)

static var Normal: UIControlState { get }
static var Highlighted: UIControlState { get } // used when UIControl isHighlighted is set
static var Disabled: UIControlState { get }
static var Selected: UIControlState { get } // flag usable by app (see below)
static var Application: UIControlState { get } // additional flags available for application use
static var Reserved: UIControlState { get } // flags reserved for internal framework use

}

对于 .Normal 可以这样引用,一直很好奇。这是swift既定语法规则嘛?但是自己试图创建这样一个结构体,却无法成功。还是自己写错了?

我是这样创建的

struct Summation {

static var Normal:Summation? { get {
        return nil
    }
}

};

class Student{
func setSum(forsm sum:Summation){

}

};

var stu = Student()
stu.setSum(forsm:.Normal!) //此处报错

球大神解答!

解决方案

http://blog.csdn.net/wxtsmart/article/category/717714

解决方案二:

我怎么觉的应该是枚举,而不是结构体呢?枚举是可以删除前面的东西,直接。xxx这个用的

解决方案三:

你应该有地反写错了,我按照你的方式试了下是可以的运行的

定义:

 struct Summation {
    static var ANormal:Summation? {
        get {
            return nil
        }
    }
}

    func setSum(forsm sum:Summation?) {

    }

调用:

 self.setSum(forsm: .ANormal)
时间: 2024-08-31 23:38:20

ios-为什么cocoa里可以直接使用.Normal 类似语法,自己却不能写?的相关文章

iOS 为什么cocoapods里的MJRefresh 和EaseUI里的导入的MJFresh文件不一致

问题描述 iOS  为什么cocoapods里的MJRefresh 和EaseUI里的导入的MJFresh文件不一致,最新的MJRrfresh的文件三方里没有MJRefreshLegendHeader 这个文件,导入后里面的文件也不一致 解决方案 应该是版本不一样,把EaseUI里的去掉,代码里用到的相关方法改一下应该就可以了.解决方案二:能把详细代码粘贴一下吗?我这样写的,还是报错- (void)setShowRefreshHeader:(BOOL)showRefreshHeader{   

ios在群里发的图片,android端点击放大显示不出来

问题描述 **ios在群里发的图片,android端点击放大显示不出来** 解决方案 ios和android是互通的,图片看大图是没问题的,点击会先下载下来

POST请求,iOS开发时,图片上传的时候,类型是文件流,怎么写

问题描述 POST请求,iOS开发时,图片上传的时候,类型是文件流,怎么写 POST请求,iOS开发时,图片上传的时候,类型是文件流,怎么写,在线等 解决方案 http://blog.csdn.net/zhangkongzhongyun/article/details/8277426 解决方案二: 给个思路就行,或者给个链接

我们把 iOS 的 Cocoa Touch 移植到了 Android

这是我最近一年在做的项目,用我们老大的话说,就是"能不能弄一个东西,让我的 iOS 程序一行代码不用改,却能运行在 Android 上".为了这个目标,我们最后弄出了个这样的东西. 说起来我们之所以要做这个东西也是蛮有趣的.事情的起因,我们需要把一个为 iOS 写的排版引擎移植到 Android 上.但我们觉得这个排版引擎实在是太复杂了,而且把一个写好的 iOS 程序重新写个 Android 版本很无趣,那就变成了跟抄作业一样把 Objective-C 代码换成 Java 代码的行为了

iOS 将数组里的元素逗号分隔成字符串

有时候我们需要将数组里的元素取出来,然后放到字符串中,并将各元素用逗号分隔,如果用[NSString stringWithFormat:@"%@%@",@"",@","] 拼接起来,达不到想要的效果.很简单的一句话处理如下:  代码如下 复制代码 NSArray *dataArray = @[@"111",@"222",@"333",@"444",@"555

ios中kvo的使用,一种类似后门的用法,大家看一看,即使不用也可以加深对kvo的理解

http://blog.segmentfault.com/lingchen/1190000000526660 valueForKeyPath 可能大家对- (id)valueForKeyPath:(NSString *)keyPath方法不是很了解. 其实这个方法非常的强大,举个例子: NSArray *array = @[@"name", @"w", @"aa", @"jimsa"]; NSLog(@"%@&quo

编写手机端自适应页面案例,springMVC代码,SpringMVC上传代码,去掉input框中原有的样式,使ios按钮没有圆角,css中的border-radius类似

1.编写的页面 <%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html PUBLIC "-/

怎么将数据库里的信息显示到下面的textfield1中,请写详细代码。谢谢!

问题描述 ackagecom.apew;importjava.awt.BorderLayout;importjava.awt.Checkbox;importjava.awt.CheckboxGroup;importjava.awt.Container;importjava.awt.Font;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.ItemEvent;impo

【IOS开发必备指南合集】申请企业级IDP、真机调试、游戏接入GAMECENTER 指南(实现仿官方的成就提示框)、游戏接入OPENFEINT指南;

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2d/535.html 这里Himi给出对于开发iOS的朋友们整理一个指南集合,其中主要包括申请IDP需要注意的地方.有了开发者证书如何真机调试.在自己的游戏应用中如何接入GameCenter以及如何在游戏接入OpenFeint: ---–申请企业级IDP,或者个人IDP 通过Himi的申请经验,直接打苹果在中国的客服