Ios 我需要知道我的变量是否包含特定的单词

Ios 我需要知道我的变量是否包含特定的单词,ios,swift,Ios,Swift,我需要知道变量“act”是否包含特定字符串,并打印true或false 我多次尝试使用“contains”函数,但它好像不是内置的 当我把“contains”放在func“parseJson”中时,它就好像不存在一样,如果我把它放在func“parseJson”中,我会发现“act”不存在 这里是初学者 我尝试的是: if act.contains("string") { print("exists") } 及 我遇到这

我需要知道变量“act”是否包含特定字符串,并打印true或false

我多次尝试使用“contains”函数,但它好像不是内置的

当我把“contains”放在func“parseJson”中时,它就好像不存在一样,如果我把它放在func“parseJson”中,我会发现“act”不存在

这里是初学者

我尝试的是:

if act.contains("string") {
                     print("exists")
                }

我遇到这样的错误:“Activity”类型的值没有成员“contains”

我的代码:

import UIKit
import Foundation

protocol HomeModelDelegate
{
    func itemsDownloaded(activities: [Activity])
}

class HomeModel: NSObject
{
    var delegate:HomeModelDelegate?

    func getItems()
    {

        let serviceUrl = "https://www.zzzway.com/dbusers.php"

        let url = URL (string: serviceUrl)

        if let url = url
        {
            let session = URLSession(configuration: .default)

            let task = session.dataTask(with: url, completionHandler: { (data, response, error) in
                if error == nil
                {
                    self.parseJson(data!)
                }
                else
                {

                }

            })

            task.resume()
        }

    }

    func parseJson(_ data:Data)
    {

        var actArray = [Activity]()

        do {
            let jsonArray = try JSONSerialization.jsonObject(with: data, options: []) as! [Any]

            for jsonResult in jsonArray

            {

                let jsonDict = jsonResult as! [String:String]

                let act = Activity (NumUser: jsonDict["NumUser"]!, cFirstname: jsonDict["cFirstname"]!, cLastname: jsonDict["cLastname"]!, cEmail: jsonDict["cEmail"]!, cPassword: jsonDict["cPassword"]!, NumPts: jsonDict["NumPts"]!, forgotpass: jsonDict["forgotpass"]!)

                print (act)

                actArray.append(act)

            }

            delegate?.itemsDownloaded(activities: actArray)
           }
        catch
           {
        print("There was an error")
           }

}
} 
您可以使用反射(如果正在检查字符串属性,则与字符串的.contains方法结合使用)来迭代实例变量的属性,并确定其中一个是否包含特定的字符串值。您还可以创建一个函数来访问结构/类的每个相关(字符串类型?)属性,以检查字符串值

如果您发布活动的代码定义,我们可以更具体地帮助您

下面是一个基本示例(无反射):

是一个字符串的方法,可以通过导入基础在我的例子中使用。如果您的意思是您的实际活动类没有.contains方法,那么这是正确的。事实并非如此。您必须创建自己的功能,因为您想要的功能似乎比.contains对字符串执行的简单检查更复杂。函数activityContainsString尝试创建该功能,遍历类定义中的每个字符串属性,检查这些属性中是否至少有一个包含作为参数提供的字符串,并根据需要返回true或false

如果需要,您甚至可以将函数重命名为contains,使其表面上类似于String的方法,并且可以以类似的方式调用它(确保函数位于活动定义内):


这是使用其他帐户的转载吗?是我的合作伙伴。他写了一个不详细的问题,所以我在这里回答得更清楚了。。有希望地
import UIKit
import Foundation

protocol HomeModelDelegate
{
    func itemsDownloaded(activities: [Activity])
}

class HomeModel: NSObject
{
    var delegate:HomeModelDelegate?

    func getItems()
    {

        let serviceUrl = "https://www.zzzway.com/dbusers.php"

        let url = URL (string: serviceUrl)

        if let url = url
        {
            let session = URLSession(configuration: .default)

            let task = session.dataTask(with: url, completionHandler: { (data, response, error) in
                if error == nil
                {
                    self.parseJson(data!)
                }
                else
                {

                }

            })

            task.resume()
        }

    }

    func parseJson(_ data:Data)
    {

        var actArray = [Activity]()

        do {
            let jsonArray = try JSONSerialization.jsonObject(with: data, options: []) as! [Any]

            for jsonResult in jsonArray

            {

                let jsonDict = jsonResult as! [String:String]

                let act = Activity (NumUser: jsonDict["NumUser"]!, cFirstname: jsonDict["cFirstname"]!, cLastname: jsonDict["cLastname"]!, cEmail: jsonDict["cEmail"]!, cPassword: jsonDict["cPassword"]!, NumPts: jsonDict["NumPts"]!, forgotpass: jsonDict["forgotpass"]!)

                print (act)

                actArray.append(act)

            }

            delegate?.itemsDownloaded(activities: actArray)
           }
        catch
           {
        print("There was an error")
           }

}
} 
import Foundation

struct Activity {

    let numUser: Int

    let cFirstName: String

    let cLastName: String

    let cEmail: String

    let cPassword: String

    let numPts: Int

    let forgotPass: Bool

    func activityContainsString(value: String) -> Bool {
        if cFirstName.contains(value) {return true}
        if cLastName.contains(value) {return true}
        if cEmail.contains(value) {return true}
        if cPassword.contains(value) {return true}

        return false
    }
}

let act = Activity(numUser: 5, cFirstName: "John", cLastName: "Doe", cEmail: "john@doe.com", cPassword: "password", numPts: 99, forgotPass: false)

print(act.activityContainsString(value: "magic")) // prints false
print(act.activityContainsString(value: "pass")) // prints true
func contains(_ value: String) -> Bool {
    if cFirstName.contains(value) {return true}
    if cLastName.contains(value) {return true}
    if cEmail.contains(value) {return true}
    if cPassword.contains(value) {return true}

    return false
}

let act = Activity(numUser: 5, cFirstName: "John", cLastName: "Doe", cEmail: "john@doe.com", cPassword: "password", numPts: 99, forgotPass: false)

print(act.contains("magic")) // prints false
print(act.contains("pass")) // prints true