NSArray 和 NSString

2023-12-24

我目前正在阅读的书让我编写以下代码:

-(IBAction)displaySomeText:(id)sender {
    NSString *cow = @"Milk";
    NSString *chicken = @"Egg";
    NSString *goat = @"Butter";

    NSArray *food = [NSArray arrayWithObjects:cow, chicken, goat, nil];

    NSString *string = @"The shopping list is: ";
    string = [string stringByAppendingString:[food componentsJoinedByString:@", "]];

    [textView insertText:string];

}

我对数组的工作原理有所了解,但我需要帮助理解以下代码

string = [string stringByAppendingString:[food componentsJoinedByString:@", "]];

我从来没有见过这样的例子。

他让我创建一个“字符串”对象,从NSString上课,然后我就这样做

string = [string stringByAppendingString:];

我很困惑。我从未见过创建对象然后对同一对象执行方法并将其存储在完全相同的对象中的示例。

例如,我知道我可以做到这一点

NSSound *chirp;
chirp = [NSSound soundNamed:@"birdChirp.mp3"];

上面的内容是有道理的,因为我使用了创建的对象并对其执行了类方法。

但我总是假设以下代码的等效项是不可能的

chirp = [chirp methodNameEtc..];

我希望我很好地解释了我的问题。如果没有,我总是可以进一步详细说明。


我认为这是你问题的核心“我很困惑。我从未见过创建一个对象,然后对同一对象执行方法并将其存储在完全相同的对象中的示例。”

要回答这个问题,你实际上并不是'将其存储在完全相同的对象中'。你所做的事情令人困惑pointers and objects.

让我们看看这一行:

string = [string stringByAppendingString:@"Hello"];

在这一行中 'string' 是pointer,不是object它指向。这行代码的意思是: ”Object目前引用的pointer'string',返回给我一个新的NSString object谁的文本是您添加此文本的文本。当我得到那个新东西时NSString object我下令做pointer'string' 指向那个object反而。”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSArray 和 NSString 的相关文章

  • 为具有多个目标和不同平台的项目编写 Podfile

    我正在准备一个支持 OS X 和 iOS 的 Pod 我的 pod 有一些自己的依赖项 这些依赖项在 podspec 文件中定义 因此我使用 Podfile 来管理我用来开发 pod 和运行测试的项目的依赖项 我正在使用 CocoaPods
  • 检查 Objective-C 块类型?

    这主要是出于好奇 我不太确定它的实际用途是什么 但就这样吧 由于块也是 Objective C 对象 是否可以检查它们的类型 也就是说 它是否响应isKindOfClass 消息以及如何使用该消息来处理块 我天真的以为事情大概是这样的 vo
  • 当 ViewController 从 UIStoryboard 实例化时,isMemberOfClass 返回 no

    我有一个 OCUnit 测试类 PatientTestViewControllerTests 下面是界面 interface PatientTestViewControllerTests SenTestCase property nonat
  • 子类 PFObject 上的 PFUser 属性

    我使用以下类 动态属性以及 m 文件中的 load 和 parseClassName 方法 对 PFObject 进行了子类化 interface DAOpponents PFObject
  • 动画 UICollectionView 单元格大小更改并重新定位周围单元格

    Goal 以动画方式改变单元格的高度并重新定位周围的单元格 设想 集合视图中的某些单元格会加载远程图像 最初 这些单元格的大小是静态的 并显示活动指示器 加载图像后 会将其添加到其单元格中 并且更改单元格的高度以适合照片 Notes 我正在
  • 如何将自定义 C 代码放入 SwiftPM 包中?

    我正在尝试将 C 代码打包到 Swift 模块中 我们称之为CModule 一旦我将其放入项目的基本文件夹中 Swift模块 并配置了搜索路径 我可以在 Swift 文件中自动完成工作 并检测错误 警告 问题是 导入时它无法识别该模块 并且
  • iPhone Twitter SDK 与 iOS 5 设备的集成问题

    我已成功将 Twitter Sharekit 与我的 iPad 应用程序源集成 当我在模拟器和装有 iOS 4 X 的 iPad 1 上测试该应用程序时 它运行完美 并且成功发布了推文 但是 如果我在装有 iOS 5 的 iPad 2 上安
  • 在成为FirstResponder或resignFirstResponder的情况下将对象保持在键盘顶部?

    我目前在键盘顶部有一个 UITextField 当您点击它时 它应该粘在键盘顶部并平滑地向上移动 我不知道键盘的具体时长和动画类型 所以确实很坎坷 这是我所拥有的 theTextView resignFirstResponder UIVie
  • AVCaptureDevice 找不到任何设备

    这行代码是我今天遇到的问题 macOS 应用程序 NSArray devices AVCaptureDevice devicesWithMediaType AVMediaTypeVideo 我更新Xcode后 系统总是让我空着devices
  • NSCFData fastCharacterContents 崩溃? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我目前在控制台中收到此崩溃日志 20
  • Objective-c 中的块递归

    当执行涉及 Objective C 块的递归时 我在 iOS 应用程序中收到 EXC BAD ACCESS 信号 这是简化的代码 void problematicMethod FriendInfo friendInfo onComplete
  • iPhone UINavigationBar 使用 [UINavigationBar 外观] 更改所有控制器的字体样式

    我知道我可以单独更改导航栏的字体 如本答案所述 更改导航栏的字体 https stackoverflow com questions 5832036 change the navigation bars font 目前我正在使用一种更全局的
  • 错误域=AVFoundationErrorDomain代码=-11814“无法记录”

    它不断给我错误 错误域 AVFoundationErrorDomain代码 11814 无法记录 我不确定问题是什么 我试图在拍照后计数器达到 1 时录制声音 static int counter counter will always b
  • 无法在 Windows 上使用 Gnustep 编译 Objective C

    嗨 我是初学者 学习目标c 我发现错误 hello m 1 34 Foundation Foundation h 没有这样的文件或目录 我开始知道我需要制作一个 make 文件 我可以知道如何制作 make 文件吗 无需创建 makefil
  • 如何在 Xcode 4 中在 .h 和 .m 之间切换

    刚刚安装的 Xcode 4 到目前为止一切顺利 除了 Apple 更改了所有键盘快捷键 有人知道如何在 h 和 m 之间切换吗 苹果改变了各种快捷键 但要在标头和实现之间切换 新的快捷键是 You can change it back to
  • CBPeripheral 名称有时为 null

    我正在开发一个应用程序来与蓝牙 LE 外围设备进行通信 我目前正在测试的外围设备是其中之一these http www ti com tool cc2540dk mini 有趣的是 有时当我发现它时 我会得到它的正确名称 SimpleBLE
  • 带有 Core Data 对象的动态 UITableView 高度

    过去几天我一直在试图解决一个谜团 即为什么我的批处理大小为 20 的 NSFetchedResultsController 总是在获取完成后立即错误 即加载到内存中 我的所有对象 从而导致请求需要约 20 秒 事实证明 这是因为在我的 he
  • iOS 10 的错误? NSDate 日本地区时间描述和 24 小时休息

    这似乎是 iOS 10 的一个错误 在 iOS 8 和 9 中都可以 NSDate date description 的小时描述是错误的 它附加了 24 小时描述和 12 小时描述 我没有使用 NSDateFormatter 只是默认设置
  • 如何确定iPhone铃声的当前级别?

    我正在使用 AVSystemController 将 iPhone 铃声静音 但我不知道如何确定铃声的当前级别 有任何想法吗 PS 是的 我知道使用 AVSystemController 可能会导致应用程序被 App Store 禁止 这不
  • UISplitViewController - 推送模态视图

    使用 UISplitViewController 时推送模态视图的最佳实践是什么 您会从 RootViewController DetailViewController 还是直接从应用程序委托推送 理想情况下 我想要实现的功能是在基于某些条

随机推荐

  • 使用 Knockout.js 选择()输入字段

    我是 Knockout js 的新手 是什么best way to select an
  • Kotlin 删除所有非字母数字字符

    我正在尝试从字符串中删除所有非字母数字字符 我尝试使用replace 正则表达式如下 var answer answerEditText text toString Log d debug answer answer answer repl
  • C# 开关/中断

    看来我需要使用 C 在 switch 语句中的每个 case 块中使用中断 我可以在其他语言中看到这样做的原因 您可以在其中转到下一个案例陈述 案例块是否有可能落入其他案例块 非常感谢 非常感谢 是的 您可以通过两种方式进入下一个案例块 您
  • 如何将两个表合并为拥有相同的列?

    我有两个表A和B A有两列 id amount B也有两列 id amount 我希望将A和B结合起来创建一个新表C 具有相同的两列 id amount 我怎样才能使用 SQL 来做到这一点 例如 A A1 1 A2 5 A3 2 A4 5
  • 从github安装curl'ed脚本:

    我在 Github 上托管了以下脚本 https rawgit com oresoftware quicklock master install sh https rawgit com oresoftware quicklock maste
  • 确定函数在闭包 javascript 中是如何被调用的

    最近我在 hackerrank 中遇到一个问题 必须计算乘法运算并返回答案 例如 function multiply a b return a b 现在的问题是该函数可能以不同的方式调用 例如 multiply 4 5 multiply 4
  • Spring Boot - 计算字段

    所以 我有一个实体 它有字段 start date java util Date 是类型 我想要另一个字段 它会自动填充与开始日期对应的星期几 数字 1 表示星期日 2 表示星期一等 的整数 这是我的实体的片段 Id GeneratedVa
  • 读/写锁定asp.net中的静态变量

    我的 C ASP NET 项目中有一个静态变量 抽象数据类型 而不是基元 它将被许多线程同时且频繁地读取 我很少需要写入它 与读取次数相比 确保线程安全的最佳方法是什么 以便在我写入时其他线程不会读取部分写入的数据 我只用过lock 但我知
  • 如何使用 Idealista API 获取房地产数据?

    我一直在尝试使用网站 Idealista 的 API https www idealista com https www idealista com 检索房地产数据信息 由于我不熟悉 OAuth2 到目前为止我还无法获取令牌 我刚刚获得了
  • 如何获取 symfony/symfony 3 中的捆绑包列表?

    我刚刚开始使用 symfony 我想从特定供应商获取捆绑包列表 迭代它们并在每个默认控制器上调用 bundle gt renderSomething 函数 首先 我需要获取要迭代的包列表 或迭代每个对象 关于最好的方法有什么想法吗 在控制台
  • Meteor 会自动更新 mongodb 版本吗?

    我安装了 Meteor 1 2 2 根据 MeteorBlog 它应该安装 Mongodb v3 0 或更高版本 但是 如果使用 Mongo shell meteor mongo 并执行以下操作 db version 我得到 2 6 7 不
  • 如何在 React JS 中检查损坏的图像

    我正在编写一个模块 它从 json 获取文章数据并在文章文本上显示一个大图像 正如他们所说的英雄模块 我已经获得数据并进行了设置 因此如果有图像 它将显示该图像 如果数据中没有图像 它将显示默认图像 问题是此方法不会替换损坏的链接以显示默认
  • 在 LINQ select(x => new 中声明变量

    我正在将 POCO 映射到模型中 代码如下所示 NOT NEEDED var noneRequiredUserDocuments new List
  • 使用 SDK 8 中的 Android MediaPlayer 进行流式传输

    SDK 级别 8 Froyo 引入了 MediaPlayer 连接到流媒体源 如 Shoutcast 的本机功能 以前的 SDK 版本能够采取解决方法 例如在设备上运行本地代理 请参阅NPR http code google com p n
  • 防止 XslCompiledTransform 使用自关闭标签

    我在用XslCompiledTransform将 XML 文件转换为 HTML 有没有办法阻止它使用自关闭标签 e g span span span span
  • 从编辑重定向到父资源不会(重新)渲染模板

    我的用户界面的布局是一个列表 出口 子导航 详细信息 出口 出口 如中所述我之前的问题之一 https stackoverflow com questions 16342616 ember js how to refresh parent
  • python请求post数据为字符串类型时默认编码是什么?

    用下面的代码 payload 工作报告 总体情况 良好 r requests post http httpbin org post data payload Requests post数据为string类型时默认编码是什么 UTF8 还是
  • 从静态站点中托管的 javascript 运行 git Push

    想象一下用 jekyll 编译并托管在 github 页面上的静态网站 是否可以在这个页面上有一些 javascript 要求用户输入一些内容 然后将这个输入 git Push 到某个 github 存储库中 换句话说 如何用 javasc
  • Silverlight 4 - 将文本发送到记事本

    我尝试这个教程 http elegantcode com 2010 02 20 silverlight 4 com interop and the cool stuff you can do with it http elegantcode
  • NSArray 和 NSString

    我目前正在阅读的书让我编写以下代码 IBAction displaySomeText id sender NSString cow Milk NSString chicken Egg NSString goat Butter NSArray