我有一个固定大小的数组
var fieldNameArray = [String?](count: 4, repeatedValue: nil)
我这样做是为了搜索数组中是否有元素
if let temp = find(fieldNameArray,"profile_picture"){//i get a compile error here
//remove the data
....
}else{
println(" //append the value")
.....
}
但是我得到编译时错误
无法使用类型'([(String?)]的参数列表调用'find', 字符串)'
我想我应该打开它?我该怎么办
已更新
SRWebClient.POST(registerURl)
.data(registerImagesArray, fieldName: fieldNameArray, data: parametersToPost)
.send({(response:AnyObject!, status:Int) -> Void in//here compile time error
println("response object: \(response)")
再次将我的数组更改为固定大小数组后,我收到此错误
无法使用类型'((AnyObject!,Int)的参数列表调用'send' - >无效,失败:(NSError!) - >空隙)
答案 0 :(得分:0)
尝试使用它(Swift 2.0):
if let index = fieldNameArray.indexOf("profile_picture") {
//remove the data using the index
....
} else {
print("// append the value")
.....
}
在swift 1.2中(效率不高但有效):
if let temp = find(fieldNameArray.filter { $0 != nil}.map { $0! },"profile_picture") {
// Then same code as question...
答案 1 :(得分:0)
为了提高效率,你不应该做Manav Gabhawala建议的事情,而是自己写一个发现功能:
func myFind(array: [String?], value: String) -> Int? {
for (i, av) in enumerate(array) {
if av != nil && av! == value {
return i
}
}
return nil;
}
当Swift编译为机器代码时,您将获得与标准库的查找几乎相同的性能。