4和@4有什么区别?

2024-01-22

我刚刚开始学习这个,教程开始时在所有数字文字和字符串文字之前使用 @ 符号,我想“好吧,Objective-C 在文字之前使用 @ 符号”,但接下来你知道他们使用了一些数字without@ 符号和我完全不知所措。

(我说“数字”是因为我不敢说 int,因为 Objective-C / C 有很多类型的数字。)

有什么不同?


Objective C 是 C 的扩展,因此它在 C 使用文字的地方使用常规文字 - 即提供基本类型的值int, long, etc.

此外,Objective C 还支持NSNumberCocoa 框架的类。该类的对象用于wrap原始值用于需要对象的地方 - 例如,放入集合中。 Cocoa 集合不接受原始类型的值,因此您需要在将数值放入集合之前提供对象包装器。

Objective C 不支持创建类型文字NSNumber,因此您需要手动包装文字,如下所示:

[NSNumber numberWithInt:4]

这是太多的输入,特别是当您需要定义多个此类值以放入集合中时。这就是为什么 Objective C 添加了一种替代语法来创建NSNumber是 - 与@符号。所以当你写的时候@4,这与写作相同[NSNumber numberWithInt:4],但是打字少了很多。例如,在旧语法中看起来像这样的初始化

NSArray *oneTwoThree = [NSArray arrayWithObjects: [NSNumber numberWithInt:1], [NSNumber numberWithInt:2], [NSNumber numberWithInt:3], nil];

现在看起来像

NSArray *oneTwoThree = @[@1, @2, @3];

这更具可读性。

注意:第二个代码片段也使用新语法进行数组初始化。

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

4和@4有什么区别? 的相关文章

  • UIDocumentInteractionController 阻止“打开方式”表中的空投

    在我的应用程序中 我允许用户通过 Instagram 分享照片 这需要使用 UIDocumentInteractionController 如果手机支持 则会自动检测空投 如何将其从 打开方式 操作表中删除 即使我使用 UIActivity
  • 错误域=AVFoundationErrorDomain代码=-11814“无法记录”

    它不断给我错误 错误域 AVFoundationErrorDomain代码 11814 无法记录 我不确定问题是什么 我试图在拍照后计数器达到 1 时录制声音 static int counter counter will always b
  • 推入 UINavigationController 时隐藏 FBFriendPickerViewController 导航栏

    介绍一个实例FBFriendPickerViewController using presentViewController animated completion 非常简单 该类似乎是针对该用例的 但是 我想推送一个实例FBFriendP
  • 拖动时获取MKAnnotation的坐标

    我正在根据用户添加的注释的位置创建一条路径 MKPolyline 我想允许用户通过拖动引脚来更改路径 我目前可以做到这一点 但 MKPolyline 不会更新 直到引脚被放下 我实施了 void mapView MKMapView mapV
  • 如何在iOS应用程序中捕获用户的手写签名[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在我的应用程序中 用户将请求客户提供数字化的手写签名 我需要能够在用户在触摸屏上 书写 签名时捕获签名
  • CBPeripheral 名称有时为 null

    我正在开发一个应用程序来与蓝牙 LE 外围设备进行通信 我目前正在测试的外围设备是其中之一these http www ti com tool cc2540dk mini 有趣的是 有时当我发现它时 我会得到它的正确名称 SimpleBLE
  • 如何在 UICollectionView 的节标题中动态添加标签和按钮?

    请帮助我如何水平添加标签和水平添加类似的按钮 但每个按钮应像另一个部分一样在每个标签的下方对齐 这应该在 UICollectionView 的标题中动态发生 因为标签和按钮的数量根据我的数据 我想制作一种 Excel 类型的布局 并在标题中
  • 是什么导致了这个 iPhone 崩溃日志?

    我有点卡住了 需要解决这个问题 因为我的一个应用程序出现了随机崩溃 而这些崩溃并不总是能够重现 这是崩溃日志之一 Incident Identifier 59865612 9F00 44EA 9474 2BF607AD662E CrashR
  • 如何确定iPhone铃声的当前级别?

    我正在使用 AVSystemController 将 iPhone 铃声静音 但我不知道如何确定铃声的当前级别 有任何想法吗 PS 是的 我知道使用 AVSystemController 可能会导致应用程序被 App Store 禁止 这不
  • 使用 Cocoa 获取无法安装的驱动器列表

    我想获取在 OS X 下使用 Cocoa Objective C 无法安装 弹出的驱动器列表 我希望 NSWorkspace getFileSystemInfoForPath 能帮助我 NSArray listOfMedia NSWorks
  • 线程 1:信号 SIGABRT - AppDelegate.h

    main m Journey Created by Julian Buscema on 2014 07 13 Copyright c 2014 Julian Buscema All rights reserved import
  • 当您感兴趣的任务完成时,是什么让完成处理程序执行该块?

    我一直在询问并试图了解完成处理程序是如何工作的 我用过很多 也读过很多教程 我将在这里发布我使用的代码 但我希望能够创建自己的代码 而无需使用其他人的代码作为参考 我理解这个完成处理程序 其中调用者方法 void viewDidLoad n
  • 将 CALayer 旋转 90 度?

    如何旋转CALayer90度 我需要旋转所有内容 包括子图层和坐标系 Obj C theLayer transform CATransform3DMakeRotation 90 0 180 0 M PI 0 0 0 0 1 0 Swift
  • 如何通过辅助功能 API 获取当前所选文本的全局屏幕坐标。

    我需要帮助来了解字典应用程序如何在任何应用程序上按 CMD CTRL D 时显示所选文本的以下弹出对话框 我想实施 我的可可应用程序具有相同的功能 我的应用程序将在后台运行 并显示有关所选文本的一些热键的建议 我已经实现了热键捕获 我只需要
  • Objective-C 中 typedef 枚举语句在哪里?

    我担心的一个基本问题 以下代码有效 并且 typedef 枚举被识别 但我收到一条警告消息 空声明中无用的存储类说明符 我在这里做错了什么吗 这是放置 typedef 枚举的最佳位置吗 import
  • ARC 可以与 Core Graphics 对象一起使用吗?

    我最近开始了一个使用自动引用计数 ARC 的新项目 当我分配 CALayer 的内容时 UIView view UIImage image view layer contents image CGImage 我收到一个错误 ARC 不允许将
  • 如何在 Swift 中调用 Objective-C 实例类型方法?

    我有一个 Objective C 类 如下所示 interface CustomObjectHavingData NSObject property nonatomic strong NSData objWithData instancet
  • 使用 Objective C 将 RGB 彩色图像更改为灰度图像

    我正在开发一个将彩色图像更改为灰度图像的应用程序 然而 有些图片显示出来是错误的 我不知道代码有什么问题 也许我输入的参数有误 请帮忙 UIImage c UIImage imageNamed downRed png CGImageRef
  • xcode 4 垃圾收集已删除?

    我正在学习 Xcode 和 Objective C 但是我正在阅读的书使用的是旧版本 3 2 的 Xcode 其中一章完全致力于内存和泄漏 说我需要通过 项目设置 gt 构建 打开垃圾收集 但是 我找不到垃圾收集设置 它已被删除还是我只是错
  • Dropbox API - 使用 Dropbox 作为服务器

    我想使用文件共享服务器来使某些文件在多台计算机上的应用程序的多个实例中保持最新和恒定 例如 例如 编写多人游戏 它将所有玩家的位置存储在文本文件中 并使用 Dropbox 之类的工具在所有应用程序中保持文本文件不变 每个应用程序实例都可以根

随机推荐

  • 在 Framework 3.5 中使用服务器标记 <%= %> 设置 Visible 属性

    我一直在 NET Framework 4 项目中使用 等服务器标记来设置 runat server 控件的可见性 如下所示 div Content div 这适用于框架 4 但现在尝试在框架 3 5 项目上使用它 它似乎不起作用 这是 Fr
  • 悬停时显示材质复选框动画

    看看这个效果link https material components github io material components web catalog component checkbox悬停时显示复选框的圆形背景 我怎样才能在使用时
  • “找不到匹配的主机密钥类型” - Apache MINA SFTP 服务器

    我希望使用 Apache MINA 在 Java 中设置 SFTP 服务器 它似乎开始正常 但是当我尝试使用 OpenSSH 客户端连接到它时 我得到 ssh localhost p 2222 Unable to negotiate wit
  • 将服务器日志文件写入数据库是个好主意吗?

    看完之后O Reilly 发表的有关该主题的文章 http www onlamp com pub a apache 2005 02 10 database logs html 我想询问 Stack Overflow 他们对此事的看法 本地写
  • 如何在我的 Angular 指令 Bower 包中使用单独的模板?

    因此 我创建了一大堆指令 想要在许多项目中使用它们 因此我将其转换为 Bower 包并将其包含在我的一个项目中 不幸的是 这些指令不起作用 因为 templateUrl 路径不正确 templateUrls 基于与指令 js 位于同一目录中
  • 通过 JSch shell 通道向服务器发送命令

    我不知道如何通过 JSch shell 通道发送命令 我这样做 但它不起作用 JSch shell new JSch String command cd home s src Session session shell getSession
  • Kubernetes 作业失败,没有日志,没有终止原因,没有事件

    我连夜在 Kubernetes 中运行了一个作业 当我早上检查时 它失败了 通常 我会检查 Pod 日志或事件以确定原因 但是 该 Pod 已被删除并且没有任何事件 kubectl describe job topics etl names
  • 如何在python中打印包含引号的字符串

    我想在 python 中打印引号 是否可以打印一个 用Python或任何其他语言 我试过print Here a b没有用 因为它给出了不适当的语法错误 a 3 b cd print 有以下几种方法 一起使用单引号和双引号 允许您以单引号开
  • 寻找数据帧值的范围

    我有 2 个数据框 gt access V1 V2 V3 1 chr10 136122 136533 2 chr10 179432 179769 3 chr10 182988 183371 4 chr10 224234 224489 5 c
  • 是否可以以编程方式重新打开通过“输入文件”按钮选择的文件

    在我的网络应用程序中 用户通过 输入文件 按钮选择一个大的 zip 文件 然后该文件作为 blob 返回 请参阅快照 zipfile1 然后程序逐个读取 zip 文件的块 单个文件 测试程序按顺序读取所有文件 然后多次重复该序列 这可以通过
  • 停止在 Scala 中处理地图

    在下面的代码中 如果元素 2 我需要停止处理地图 val seq Seq 1 2 3 seq map x gt if x 2 stop processing the map 这可能吗 你不能这样做map 直接作为map 旨在处理整个集合 但
  • 如何使用单个 re.sub 删除数字之间的多个空格

    我想使用单个 re sub 删除数字之间的空格 使用以下命令 import re print re sub 0 9 0 9 1 2 str 11 222 print re sub 0 9 0 9 1 2 str 11 222 33 prin
  • 无法通过 RPC 获取接近协议事务状态

    给定一笔交易https explorer near org transactions JBb2DDe3i1CtBwESisLuhxXkWVZpCKYL4J1AdYwAQPsQ https explorer near org transact
  • 在Windows上使用GCC(MinGW)编译OpenGL

    我在谷歌上搜索过 但没能找到解决方案 我想使用 GCC 编译一些 OpenGL 编程 在 GCC 的 GL 文件夹中 我有以下标头 gl h glext h glu h 然后在我的 system32 文件中我有以下 dll opengl32
  • PHP fwrite 新行

    我正在尝试将用户名和密码写入 txt 文件中的新行 txt 文件中的输出应该与此类似 我知道这不是很安全 但仅用于学习目的 Sebastian password John hfsjaijn 这就是我到目前为止所拥有的 if isset GE
  • 合并运算符 - 用法(c#)[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我看到越来越多的代码片段以一种 无论
  • jquery 转换日期格式

    我需要以 2014 11 04 格式将日期显示为 yy mm dd 目前 我的脚本仍然显示 2014 年 11 月 4 日星期二 00 00 00 GMT 0200 埃及标准时间 document ready function var us
  • 如何修复 C# 中的“IDX20804:无法从以下位置检索文档:‘[PII 已隐藏]’”错误

    尝试获取访问令牌以在我的 WebApi 中使用 MS Graph 但不断出现这个错误 TaskCanceledException 任务已取消 System Runtime CompilerServices TaskAwaiter Throw
  • ggplot2 - x 轴上的上标刻度文本

    我试图让 x 轴上两个变量的文本具有上标 我希望 成为上标 但无论我尝试什么 它最终都会显示整个代码 我尝试为它制作单独的标签 并尝试使其更简单 test labs as labeller c CD4Gated CD4 cells CD8G
  • 4和@4有什么区别?

    我刚刚开始学习这个 教程开始时在所有数字文字和字符串文字之前使用 符号 我想 好吧 Objective C 在文字之前使用 符号 但接下来你知道他们使用了一些数字without 符号和我完全不知所措 我说 数字 是因为我不敢说 int 因为