如何快速打印数组中对象的值,而不是其位置

2024-04-12

我有一个类,其中包含同一项目中单独的 swift 文件中某些企业家的数据。

它看起来像这样:

class Entrepreneur:NSObject {

var name:String?
var netWorth = (0.0, "")
var company:String?
var summary: [String]
var age: Int?
override init() {
    name = ""
    company = ""
    summary = [""]
    age = 1;

}

在同一个文件中,我有一个函数返回一个NSMutableArray其中包含企业家类的实例,如下所示:

func populateArray() -> NSMutableArray {

var entreprenuersArray: NSMutableArray = []

//Mark Zuckerberg
let markZuckerBerg = Entrepreneur()
markZuckerBerg.name = "Mark Zuckerberg"
markZuckerBerg.age = 19
markZuckerBerg.company = "Facebook"
markZuckerBerg.netWorth = (35.7, "Billion")

// add mark zuckerberg object to array
entreprenuersArray.addObject(markZuckerBerg)
print (entreprenuersArray)

in my ViewController.swift文件中我创建了一个名为企业家的常量,并赋予它上面创建的“企业家”类的类型,并像这样初始化它:

let entrepreneuerss:Entrepreneur = Entrepreneur()

然后,我访问类方法之一“populateArray”函数,并尝试打印企业家数组,如下所示:

   entrepreneuerss.populateArray()
    print (entrepreneuerss)

问题是打印功能正在打印对象的位置而不是值...类似这样:.Entrepreneur: 0x7f88d0e3ecc0>"

我需要做什么这样我就可以返回对象值的数组而不是位置。我希望能够从 ViewController.swift 文件访问对象数组,并随机选择一个对象并访问其属性。


首先,你有一个实例方法,它返回一个数组Entrepreneur对象(顺便说一句,我没有看到return,也许你忘了复制它)。

该方法应该是一个类方法,因为您不使用该方法的任何属性Entrepreneur返回它的对象:

class func populateArray() -> [Entrepreneur] {

    var entreprenuersArray:[Entrepreneur] = []

    //Mark Zuckerberg
    let markZuckerBerg = Entrepreneur()
    markZuckerBerg.name = "Mark Zuckerberg"
    markZuckerBerg.age = 19
    markZuckerBerg.company = "Facebook"
    markZuckerBerg.netWorth = (35.7, "Billion")

    // add mark zuckerberg object to array
    entreprenuersArray.append(markZuckerBerg)
    print (entreprenuersArray)

    return entreprenuersArray
}

然后你可以通过调用来获得你的数组:

let array = Entrepreneur.populateArray()

其次,在这个方法中,您创建一个数组Entrepreneur对象并返回它,但在示例代码中,您从不使用此数组:

// Creates a Entrepreneur object with default values
let entrepreneuerss:Entrepreneur = Entrepreneur()

// create an array of entrepreneurs objects, returns it, but never use it
entrepreneuerss.populateArray()

// print some information about the object with default values
print (entrepreneurs)

相反,您应该使用类方法并尝试:

// create an array of entrepreneurs objects, returns it, 
let arrayEntrepreneurs = Entrepreneur.populateArray()

// print some information about the array of Entrepreneurs objects
print (arrayEntrepreneurs)

为了对您的对象有详细的描述,因为它继承自NSObject,只需覆盖description只读属性,以便在记录对象时自定义文本:

override var description : String {
    get {
        return "Entrepreneur : name : `\(name) - company : `\(company)` - summary : `\(summary)` - age : `\(age)`"
    }
}

因此你的打印函数将返回:

[Entrepreneur : name : `Optional("Mark Zuckerberg") - company : `Optional("Facebook")` - summary : `[""]` - age : `Optional(19)`]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何快速打印数组中对象的值,而不是其位置 的相关文章

  • 如何使用 JSON 以外的方法将数组转换为字符串?

    除了使用 JSON 之外 PHP 中还有什么函数可以将数组转换为字符串 我知道有一个函数可以像 JSON 一样直接执行 我只是不记得了 serialize http php net manual function serialize php
  • 在覆盖 UIView 的右下角创建四分之一透明孔

    您好 我想在覆盖 UIView 的右下角创建一个四分之一透明孔 我可以使用下面的代码解决它 但它看起来不正确 因为我在视图之外创建了一个矩形 我尝试过的 implementation PartialTransparentView id in
  • 如何改善 ARKit 3.0 中的人物遮挡

    我们正在开发一个使用 ARKit 中的人物遮挡的演示应用程序 因为我们想在最终场景中添加视频 所以我们使用SCNPlanes 使用 a 渲染视频SCNBillboardConstraint以确保他们面向正确的方向 这些视频也是部分透明的 使
  • 液体标记图过滤器示例

    我可以举一个有关 Liquid 贴图过滤器如何工作的通用示例吗 似乎没有这方面的文档 映射过滤器是 映射 收集给定属性上的数组 但如何确定该属性 这个例子存在 液体模板贴图过滤器 https stackoverflow com questi
  • 在 Swift 中动态设置 Dictionary 的属性

    我正在尝试根据字典中的值在类上设置一些属性 目前我正在这样做 let view UIView UIView if let hidden Bool self props hidden as Bool view hidden hidden if
  • 在 iOS Swift 2 中实现“阅读更多”按钮以展开 UITextView 的最简单方法?

    我希望实现一个 阅读更多 按钮 该按钮将扩展 UITextView 以便有人可以根据需要阅读整个文本 我还没有找到一种简单的方法来实现这一目标 我尝试 玩弄 容器的高度 但它没有给我想要的结果 我真的很感激任何想法 我会推荐你 ilyapu
  • 使用 RestKit 对象映射空响应

    感谢在这里帮忙 https stackoverflow com questions 9743155 restkit mapping with an array of complex objects在 RestKit 邮件列表上 我已经能够解
  • 快速检查网络速度

    我想从我的 swift 应用程序检查网络速度 我发现很多帖子描述了Reachability特别是查找连接是否可达以及是 WIFI 连接还是 WWAN 连接的方法 我的问题 是否可以检测 WWAN 的类型 2G 3G 4G 你可以用以下命令检
  • 将 2D 数组映射到 1D 数组

    我想用一维数组来表示一个二维数组 函数将传递两个索引 x y 和要存储的值 这两个索引代表一维数组的单个元素 并相应地设置它 我知道一维数组需要具有 arrayWidth arrayHeight 的大小 但我不知道如何设置每个元素 例如 如
  • UITableView行高不变

    我创建了一个自定义单元格 我有一系列字典 对于我需要创建的字典值UILables 每个单元可能包含不同数量的UILabels 所以按照我的习惯UITableViewCell类我就是这样做的 void generateCell BOOL is
  • Xcode 12.3:为 iOS 模拟器构建,但链接和嵌入框架是为 iOS + iOS 模拟器构建的 [重复]

    这个问题在这里已经有答案了 我有一个使用链接和嵌入式自定义框架的应用程序 该应用程序在 Xcode 12 2 之前都可以为 iOS 设备和模拟器正确构建 然而 从 Xcode 12 3 开始 我收到以下错误 为 iOS 模拟器构建 但链接和
  • IOS 8 无声推送通知在没有 Xcode 的情况下无法工作

    我正在尝试测试静默推送通知 我注意到当我的设备连接到 Xcode 时 我的 iPhone IOS 8 只能接收静默通知 当它被拔掉时 我在大约 5 10 次尝试中只能收到一次静默推送 这种情况只发生在 IOS 8 上 因为我有另一部手机正在
  • 在 iOS 上,边距、边缘插入、内容插入、对齐矩形、布局边距、锚点...之间有什么区别?

    iOS 社区中似乎有几种不同的选项 术语 人们在布局方面使用 例如 UIEdgeInsets 是一种类型 但有时我听到 读到 设置插图 或布局边距与布局指南 我总是能够找到有效的选择 但我永远不确定我是否使用了正确的工具来完成这项工作 有人
  • 从由空格分隔的单个输入整数列表创建二维数组

    我正在解决一些问题geeksforgeeks我遇到了一个特定的问题 其中在测试用例中提供了输入 如下所示 2 2 denotes row column of the matrix 1 0 0 0 all the elements of th
  • 使 html svg 对象也成为可点击的链接(在 iPhone 上)

    这个问题与使 html svg 对象也成为可点击的链接 https stackoverflow com q 11374059 4825796 但给出的答案似乎不适用于 iPhone ios 9 3 safari 和 chrome 浏览器 我
  • 渐变方向从左到右

    我完全被这个问题难住了 它应该如此简单 以至于让我发疯 我正在使用这个苹果反射教程 苹果反射示例 http developer apple com library ios samplecode Reflection Listings MyV
  • 展平数组:保持索引、值等于数组中的位置

    我在尝试以特定方式展平数组时遇到了一些麻烦 这里有一个print r我想要展平的数组的视图 Array 1 gt Array 8 gt 1 9 gt 2 10 gt Array 15 gt Array 22 gt 1
  • 使用自动布局时 UIScrollview 的中心内容

    我在项目中使用自动布局 并且有一个滚动视图 其中有一个居中的按钮 我已经让滚动视图滚动 但不占据整个屏幕 我尝试按照此处的教程进行操作 https developer apple com library ios technotes tn21
  • 将 .p12 证书存储在钥匙串中以供稍后使用

    我正在尝试按照 Apple 文档处理此处的客户端 p12 证书 https developer apple com library ios documentation Security Conceptual CertKeyTrustProg
  • 如何在iPhone中将字节数组转换为base64字符串?

    我有一段vb代码 我需要将字节数组转换为 Base 64 字符串 下面是vb代码 如果 arrLicence Count gt 0 那么 LicenseBytes CType Array CreateInstance GetType Byt

随机推荐