小编Kir*_*ins的帖子

如何从Button获取标签名称?

我是新手,Swift我正在制作一个简单的计算器,我不想检测按下的按钮,我的代码在下面.

 @IBAction func ButtonTapped(TheButton : UIButton){

    println(TheButton.titleLabel.text)
}
Run Code Online (Sandbox Code Playgroud)

但它显示我的错误 "UILabel? Does not have a member a named text"

它告诉我修改这样的代码

println(TheButton.titleLabel?.text)
Run Code Online (Sandbox Code Playgroud)

这个Prints Optional("1")(1是我的按钮名称)

所以任何人都可以帮助我为什么会发生这种情况,如何在没有可选项的情况下打印我的按钮名称?

ios swift

33
推荐指数
3
解决办法
4万
查看次数

在swift词典中作为关键引用

字典键需要Hashable符合:

class Test {}
var dictionary = [Test: String]() // Type 'Test' dies not conform to protocol 'Hashable'

class Test: NSObject {}
var dictionary = [Test: String]() // Works
Run Code Online (Sandbox Code Playgroud)

如何获取纯Swift类实例的地址hashValue

dictionary hashtable key memory-address swift

13
推荐指数
1
解决办法
3978
查看次数

swift函数返回一个数组

我正在学习Swift,我可以理解如何创建一个接收数组并返回数组的简单函数.继承我的代码:

 func myArrayFunc(inputArray:Array) -> Array{

 var newArray = inputArray

// do stuff with newArray

 return newArray
 }
Run Code Online (Sandbox Code Playgroud)

我得到的红色错误是:对泛型类型'Array'的引用需要<>中的参数

arrays ios swift

13
推荐指数
2
解决办法
4万
查看次数

类型'string'不符合协议NilLiteralConvertible

在我的Swift代码中:

override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    let stringIdent = String(format: "section_1_%d", section)
    return NSLocalizedString(stringIdent, comment: nil)
}
Run Code Online (Sandbox Code Playgroud)

运行构建时出现错误:

类型'string'不符合协议NilLiteralConvertible

此代码始终在Objective-C中有效.

Swift可能有什么问题?

ios swift

10
推荐指数
1
解决办法
2937
查看次数

在Swift中,如何检查对象(AnyObject)是否为String?

尝试使用:

obj.isKindOfClass(String)
Run Code Online (Sandbox Code Playgroud)

但它说类型'字符串'不符合协议'AnyObject'

那你怎么知道一个对象是不是一个字符串呢?

这个问题的上下文是UIActivity方法,prepareWithActivityItems,我需要在其中保存活动项,但如果有多个活动项,你怎么知道哪个是哪个?

string swift

10
推荐指数
1
解决办法
7352
查看次数

什么控制事件开始和结束突出显示UIButton的状态

我正在用UIButton钢琴键创建类似钢琴的视图.UIControlEvents当按钮获取并失去突出显示状态时,我应该听什么才能获得回调?

我试图创建子类UIButton并添加属性观察器highlighted,它工作正常.但是有时候我需要从代码中手动设置突出显示的状态,因为没有办法判断事件是用户还是应用程序启动,所以真的搞砸了.

uibutton ios uicontrolevents swift

7
推荐指数
1
解决办法
2567
查看次数

你在哪里放一个全局方法?

我有一个对我所有控制器都通用的功能:

func myColor() -> UIColor {
    return UIColor(red: 9.0/255.0, green: 134.0/255.0, blue: 255.0/255.0, alpha: 1)
}
Run Code Online (Sandbox Code Playgroud)

我在哪里可以放这个功能,所以我可以从任何控制器访问它?

ios swift

3
推荐指数
1
解决办法
1610
查看次数

swift dictionary嵌套数组操作 - 不能在字典中改变嵌套数组

var dict = ["alpha": ["a", "b", "c", "d"]]
// output : ["alpha": ["a", "b", "c", "d"]]

var alphaList = dict["alpha"]
// output : {["a", "b", "c", "d"]

alphaList?.removeAtIndex(1)
// output : {Some "b"}

alphaList
// output : {["a", "c", "d"]}

dict
// output : ["alpha": ["a", "b", "c", "d"]]
Run Code Online (Sandbox Code Playgroud)

为什么'dict'没有改变?是因为'alphaList'是数组的副本而不是字典中的实际数组?任何人都可以指出我在Swift语言文档中哪里可以找到这些信息?

操纵字典值(复杂类型)的正确/功能方法是什么?

dictionary swift

3
推荐指数
1
解决办法
1028
查看次数

在编写代码之前编写测试

据我所知,TDD和BDD周期类似于:

  1. 首先编写测试
  2. 看他们失败了
  3. 写代码
  4. 通过测试
  5. 重复

问题是在你有任何代码之前如何编写测试?我应该创建某种类骨架或接口吗?或者我误解了什么?

testing tdd bdd unit-testing

1
推荐指数
1
解决办法
126
查看次数

使用 Swift 将当前时间设置为 yyyy-MM-dd 00:00:00

我想问一下NSDate,如何设置/格式化当前时间,如“2015-08-12 09:30:41 +0000”到“2015-08-12 00:00:00 +0000”

我已经在使用:

var dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = .MediumStyle
dateFormatter.timeStyle = .NoStyle
//result date will be : Aug 12, 2015
Run Code Online (Sandbox Code Playgroud)

但起息日期并未完全按照“2015-08-12 00:00:00 +0000”存储在数据库中,而是存储为“2015-08-11 17:00:00 +0000 UTC”

datetime nsdate nsdateformatter ios swift

1
推荐指数
2
解决办法
8628
查看次数

SQLite WHERE 列 MATCH 参数绑定

我有 FTS 表和查询,它匹配列包含“all”和“in”的所有行。

try db.executeQuery("SELECT * FROM table WHERE column MATCH '\"all\" AND \"in\"'", values: nil)
Run Code Online (Sandbox Code Playgroud)

如何使用参数绑定使其工作?所以我可以提供:

values: ["all", "in"]
Run Code Online (Sandbox Code Playgroud)

sqlite full-text-search fmdb ios swift

1
推荐指数
1
解决办法
692
查看次数

如何从纯 C 函数中获取返回值到 swift?

我有一个疑问,如何将纯c函数的返回值快速获取。

这是我的代码:

ViewController.swift// swift 文件中

var name = getPersonName()
Run Code Online (Sandbox Code Playgroud)

personList.h// C 头文件中

char getPersonName();
Run Code Online (Sandbox Code Playgroud)

personList.c// 纯 C 文件中

#include personList.h

char getPersonName() {
    char* name = "Hello, Swift";
    return name;
}
Run Code Online (Sandbox Code Playgroud)

在这里,我已经使用MyProjectName-Bridging-Header.h.

谢谢

c function ios swift

0
推荐指数
1
解决办法
1785
查看次数