创建一个没有 init 方法的类 (Objective-c)

2024-01-25

是否可以创建一个没有 init 方法的类,以强制所有调用者使用工厂方法创建对象?


所以基本上,您要确保您的类永远不会使用 -init 进行初始化,对吧?你不能这样做exactly你想做的事,但你可以接近。

由于您继承自 NSObject,因此您有一个 init 方法,并且您无法阻止它被调用。也就是说,您可以将 init 重写为:

- (id)init
{
   [self dealloc];
   @throw [NSException exceptionWithName:@"MyExceptionName" reason:@"Reason" userInfo:nil];
   return nil;
}

这样,只要有人调用你的 -init 方法,它就会杀死该对象,所以实际上,你的 init 方法几乎是不可调用的。

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

创建一个没有 init 方法的类 (Objective-c) 的相关文章

  • Main.1 输出文件在 XCode 中有何作用?

    我制作了一个名为 Stack 的示例项目 但意识到我需要更多的数据结构 因此我重命名了所有内容 该项目 在 XCode 中创建了 2 个新文件夹及其匹配组 修改了目标构建路径以查找 Main DataStructures Prefix pc
  • Instagram直接打开UTI

    我最近偶然发现了以下有趣的功能 Instagram iPhone 挂钩 http instagr am developer iphone hooks 我想知道是否能够立即通过 uidocumentinteractioncontroller
  • apple mach-o 链接器错误链接器命令失败,退出代码为 1(使用 -v 查看调用)

    2 https i stack imgur com pMAAm png我正在使用 Objective C 处理核心数据 出现错误 Apple Mach O Linker Error Linker command failed with ex
  • AFNetworking 同步调用(类似/不同)

    我需要实施喜欢 不喜欢应用程序中的功能 所有 API 调用均通过AFNetworking和成功 错误处理程序 iOS 块 问题是 当用户在短时间内多次单击某个按钮时 服务器会以错误的顺序接收某些请求 然后一切都会变得错误 例如发生双重喜欢或
  • UICollectionView 和补充视图(标题)

    尝试将补充视图添加到我的UICollectionView作为标题 我在让它工作时遇到问题 我用的是自定义的UICollectionViewFlowLayout返回一个contentSize总是比框架大至少 1 像素 我使用的是UIFresh
  • 如何消除错误 服务无效 请检查您的设置并尝试

    我一直在努力工作 一切都很顺利 只是突然间 当我尝试构建我的项目时 我在 xCode 中收到以下错误 1 在构建时的警报框中 服务无效 请检查您的设置并重试 0xE8000022 只需重新启动您的 iPod 或 iPhone 即可
  • NSDate 输出不正确[重复]

    这个问题在这里已经有答案了 可能的重复 获取日期与 NSDate date 相差几个小时 https stackoverflow com questions 8466744 getting date from nsdate date off
  • iOS 64 位 @try {... } @catch {...} 不起作用

    我有一个非常特殊的问题 最近 我向我的 iOS 项目 arm64 添加了 64 位支持 从那时起 我开始收到内部代码段未捕获的异常 try catch 我使用 Crashlytics 进行崩溃报告 我设法在应用程序中的任何位置使用以下代码行
  • UIView 的变换看起来很糟糕

    我有一个简单的视图和简单的背景 我需要旋转视图及其内容 代码在这里 CGAffineTransform r CGAffineTransformMakeRotation 5 M PI 180 0f backView transform r 我
  • 如何在首选项包中使用 PSLinkListCell 中的值?

    我想为我的越狱调整制作一个偏好包 我成功地制作了一个带有可用开关的首选项捆绑包 但我想要一个选择颜色的设置 例子 Blue Color gt Yellow Green 所以如果我点击Color 它会将我带到另一个屏幕 要求我选择 Blue
  • 如何以编程方式设置 iOS 6/7 Delta

    当我离开 iOS6 时 我正在使用 Xcode 4 6 开发 UISplitView 应用程序 我有设计 现在我迁移到新的 Xcode5 现在我有这样的设计 UINavigationBar 完全重叠我的 UISearchBar Leo Na
  • 如何在 UICollectionView PerformBatchUpdates 块中排序移动、插入、删除和更新?

    In my UICollectionView 我使用一个简单的自定义对象数组来生成和显示单元格 有时数据会发生变化 我想一次性为所有变化添加动画效果 我选择通过跟踪第二个数组中的所有更改 比较两个数组并在一个数组内生成一组移动 插入 删除和
  • Swift 和 Objective-C 框架公开其内部结构

    我正在尝试将 Swift 添加到具有公共 私有和项目文件的现有 Objective C 框架中 为了让 Swift 能够访问项目文件 我添加了一个定义新模块的模块映射 例如MyFramework Internal 通过包含所有项目标题 如下
  • 如何阻止我的应用程序设置“隔离”位?

    从 OS X 10 7 3 开始 我的文本编辑器就在它接触的任何文件上设置 隔离 位 我的文本编辑器设计用于处理 shell 脚本 如果设置了隔离位 则无法从命令行执行 shell 脚本 直到您在 Finder 中双击它并浏览 此应用程序是
  • iOS 显示 UIImage 全屏并启用缩放(捏合和双击)

    我有一个UIImage从相机捕获UIImagePickerController 现在 在用户单击它之后 我希望它显示全屏 并且能够使用捏合手势进行放大和缩小 还可以使用双击手势来放大特定区域 换句话说 我想模拟ios默认图像浏览器的功能 我
  • 如何在文本末尾添加按钮,如 Facebook 的“继续阅读”?

    当状态帖子太长时 Facebook 应用程序会剪切文本并在末尾添加 继续阅读 它如何知道在哪里剪切文本并添加 继续阅读 不仅仅是向 textView 或标签添加按钮 而是如何剪切字符串 例如 在下图中 我将行数限制为 7 我可以在 text
  • 解析后 UITableView 委托和数据源在单独的类中

    我需要从一个单独的类设置 UITableView 委托和数据源 方法调用解析后数据准备就绪 但每次我的表都是空的 我正在使用 ARC 这是简化的代码 HomeViewController h import
  • 如何在 iPhone 应用程序的 url 中传递字符串值

    NSURLRequest request NSURLRequest requestWithURL NSURL URLWithString http www krsconnect no community api html method ba
  • 使用捏合手势;如何放大用户手指实际“捏”的位置?

    我已经在我的应用程序中的 UIImageView 上实现了 UIPinchGestureRecognizer 但是无论我在图像的哪个位置捏合 它似乎都会放大到同一个位置 有谁知道我如何让它放大到用户实际 捏 的地方 请参阅下面的代码 视图控
  • 无限 UIScrollView 在 iOS4.3 中出现奇怪的行为,而不是 iOS5

    我已经实现了一个包含 UIView 的无限 UIScrollView 在 iOS5 模拟器和 iPhone 中滚动时 效果非常好 但在 iOS 4 3 sim 和手机 中 情况有点疯狂 滚动条传递的视图比应有的多 大约比 iOS5 多 10

随机推荐

  • nil 的 Ruby 用例,相当于 Python None 或 JavaScript undefined

    鲁比的怎么样nil体现在代码中 例如 在 Python 中 当默认参数引用另一个参数时 您可以使用 None 作为默认参数 但在 Ruby 中 您可以引用 arg 列表中的其他参数 请参阅这个问题 https stackoverflow c
  • npm 发布 - 从 package.json 中删除脚本?

    在发布我的脚本之前 我在 package json 下有许多脚本来编译咖啡脚本 打字稿和仅限开发人员的命令 一旦发布就没有任何意义 我想知道是否有删除 package json 下某些脚本的程序 考虑到在发布包时 它也会发布 package
  • 在 Matter.js 中旋转相机

    我正在开发一款以太空为背景的自上而下的物理游戏 我希望旋转到视图时始终显示玩家的船朝上 即使船可以旋转 我搜索了文档 但没有找到任何有关旋转世界或渲染器的信息 但我可能不知道要查找的正确术语 这对于 Matter js 来说是可能的吗 我不
  • 使用 ng-template 在 Angular 10 中仅显示博客中的相关条目

    我有一个用 Strapi 制作的博客后端 您可以在其中添加一些内容类型 例如标题字段 描述字段和内容字段 我还有一个布尔内容类型来设置博客是否相关 我在 Angular 中设置了一个 ngFor 来显示我所有的博客条目 但我只想展示相关的内
  • 为什么不同 Android 版本的 apk 大小会增加

    我创建了一个简单的应用程序 由 android studio 生成的 apk 大小为 1 MB 然后我安装在android 2 3版本大小增加到3 48 MB 然后我安装在android 5 0版本大小增加至 5 48 MB 我的问题只是为
  • socket.error:[errno 99] 无法分配请求的地址:flask 和 python

    我有同样的问题 and here https stackoverflow com questions 19246103 socket errorerrno 99 cannot assign requested address and nam
  • 单向来源困境

    我在用OneWayToSource绑定 它似乎总是将我的源属性设置为 null 为什么会这样 这给我带来了麻烦 因为我需要源属性中目标属性的值而不是 null 这是我的代码 MyViewModel cs public class MyVie
  • 使用 Aeson 解析嵌套 JSON 中的数组

    我正在尝试写一个FromJSON埃森的功能 JSON total 1 movies id 771315522 title Harry Potter and the Philosophers Stone Wizard s Collection
  • 在Android中使用notifyItemRemoved或notifyDataSetChanged与RecyclerView

    我正在创建一个要使用 RecyclerView 显示的卡片列表 其中每张卡片都有一个用于从列表中删除该卡片的按钮 当我使用通知项目已删除 要删除 RecyclerView 中的卡片 它会删除该项目并进行良好的动画处理 但列表中的数据未正确更
  • 在 PyYAML 中格式化自定义类输出

    我正在这里研究一个简单的示例 但文档仍然让我有点困惑 这是示例代码 class A yaml YAMLObject yaml tag u A def init self val self val val if name main t dat
  • XamlParseException:自定义控件中的属性丢失,但已定义!

    I 有时我的自定义控件出现以下异常 XamlParseException occurred Unknown attribute Points in element SectionClickableArea Line 10 Position
  • 将 MariaDB 与实体框架结合使用

    最近 我读到一则新闻 说 MariaDB 是 MySQL 的替代品 因为MySQL 对集群 企业版的定价不友好 http www theregister co uk 2013 09 12 google mariadb mysql migra
  • Node X-ray 从 url 集合中爬取数据

    我正在尝试在网站中抓取一个列表 该列表会指向具有相同格式的其他页面 我能够创建所有 a 标签的集合 但是当我尝试访问页面集合时 我尝试用它创建的密钥不会添加到返回的对象中 这是我尝试对堆栈溢出执行的操作的示例 var Xray requir
  • 如何在 Mac 操作系统上永久删除 Xampp?

    我用过Xampp 然后把它删除了 然后 我尝试使用Mamp 有一个错误我不明白 Mamp 作为网络服务器运行得非常完美 但是如果我想使用phpmyadmin 它就不起作用了 例如 我向数据库插入一些内容 它没有显示在 phpmyadmin
  • 多语言数据库,具有默认后备

    我知道 我有一个问题已经被广泛讨论 但在我看来 有一个方面仍然需要澄清 我正在创建一个带有多语言数据库的网络应用程序 我已经找到了一些好的实践文章 例如this https web archive org web 2014101519585
  • 关闭/重启Linux系统的shell脚本

    有没有合适的 shell 脚本来关闭或重新启动 Linux 机器 我尝试过使用 shell 脚本来关闭 但是当我输入sudo shutdown它会要求输入密码 我们如何使用脚本输入密码 我认为另一种更干净的方法 在中创建一个新文件 etc
  • Javascript 中的 Unicode 值 \uXXXX 到字符

    我以前从未这样做过 并且不确定为什么它会输出臭名昭著的内容 编码字符 关于如何输出应有的字符 ASCII Unicode 有什么想法吗 我认为 u0041 u005A应该打印A ZFirefox 报告的 UTF 8 是页面编码 var c
  • 读取文本文件时字符串索引超出范围[重复]

    这个问题在这里已经有答案了 我一直在程序的倒数第二行遇到此错误 我不知道为什么 我所做的只是从文本文件中读取一行 if items 0 86947367 with open read it txt as text file try pric
  • 如何设置组合框中选定的值?

    我在 C Windows 窗体中使用组合框 我绑定的项目列表如下 var employmentStatus new BindingList
  • 创建一个没有 init 方法的类 (Objective-c)

    是否可以创建一个没有 init 方法的类 以强制所有调用者使用工厂方法创建对象 所以基本上 您要确保您的类永远不会使用 init 进行初始化 对吧 你不能这样做exactly你想做的事 但你可以接近 由于您继承自 NSObject 因此您有