- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
小问题
在 XCode 的界面生成器的对象库中有一个叫做 Object
的东西。我想知道使用这个“对象”可以完成什么样的任务。
具体来说,它是Storyboard(或xib)中的一个NSObject
。描述如下:
Provides a template for objects that are not directly available in Interface Builder. You can turn this object into an instance of any class using the custom class inspector.
长问题
我正在尝试构建一个 UITableViewController
以及一个 UISearchController
。由于他们都需要在他们的委托(delegate)中实现 UITableViewDelegate
和 UITableViewDatasource
,我希望我可以将 UISearchController
的委托(delegate)分配给 Main 以外的对象UITableViewController
。
我正在寻找一种在 Storyboard 中实现此目的的方法,而不是在 viewDidLoad
中手动分配委托(delegate)。特别是,通过弄清楚 Object
在 Storyboard 中的工作方式。
我知道我可以通过检查 UITableView 的父级来区分它们。但是将逻辑分离到不同的对象总是好的。它将更容易实现,效率更高,结构更好,并且可以重用。
提前致谢。
我尝试过的
Object
放在 Storyboard 中与 UITableViewController
相同的级别(您不能将 Object
放在另一个 UIViewController
).UITableViewController
中的 @property (nonatomic, weak) IBOutlet NSObject *
链接。viewDidLoad
中打印时,NSObject *
结果是一个 nil
指针。没有运气。 @property (nonatomic, strong)
,它变成了 UICustomObject
而不是 nil
。看来我在正确的轨道上。 最佳答案
正如您所注意到的,Object 使其成为任何类的对象,包括您自己的自定义类,在加载 XIB/Storyboard 时被实例化。您获得 UICustomObject 的事实表明 XIB/Storyboard 加载机制不知道对象应该是什么类,或者找不到您指定的类(通过运行时查找)。
解决方案是确保在自定义类检查器中为对象指定正确的类:
当然,您还需要确保相关类的实现文件在您的项目中并且包含在您的目标中。
最后,对指向自定义对象的 IBOutlet 使用 strong
是正确的,因为它是顶级对象,顶级对象应该使用 strong
属性引用。 (如果您真的很好奇,Mike Ash 对 XIB/Storyboard 导出内存管理的细节有很好的 article,包括 OS X 和 iOS 在这方面的差异。)
关于objective-c - Storyboard对象库中的 "Object"可以做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11597118/
我有一个关于 JavaScript 语法的问题。实际上,我在自学 MEAN 堆栈教程时想出了编码(https://thinkster.io/mean-stack-tutorial#adding-aut
在我的书中它使用了这样的东西: for($ARGV[0]) { Expression && do { print "..."; last; }; ... } for 循环不完整吗?另外,do 的意义何
我已经编写了读取开关状态的代码,如果按 3 次 # 则退出。 void allkeypadTest(void) { static uint8_t modeKeyCount=0; do
因此,对于上周我必须做的作业,我必须使用 4 个 do-while 循环和 if 语句在 Java 中制作一个猜谜游戏。我无法成功完成它,类(class)已经继续,没有为我提供任何帮助。如果有人可以查
int i=1,j=0,n=10,k; do{ j+=i; i<<1; printf("%d\n",i); // printf("%d\n",12<<1); }while
此代码用于基本杂货计算器的按钮。当我按下按钮时,一个输入对话框会显示您输入商品价格的位置。我遇到的问题是我无法弄清楚如何获得 do ... while 循环以使输入对话框在输入后弹出。 我希望它始终恢
当我在循环中修改字符串或另一个变量时,它的条件是否每次都重新计算?或者在循环开始前一次 std::string a("aa"); do { a = "aaaa"; } while(a.size<10)
我刚刚写了这个,但我找不到问题。我使用代码块并编写了这个问题 error: expected 'while' before '{' token === Build finished: 1 errors
do { printf("Enter number (0-6): ", ""); scanf("%d", &Num); }while(Num >= 0 && Num 表示“超过”,<表
我有一个包含 10 个项目的 vector (为简单起见,所有项目都属于同一类,称其为“a”)。我想要做的是检查“A”不是 a) 隐藏墙壁或 b) 隐藏另一个“A”。我有一个碰撞函数可以做到这一点。
嗨,这是我的第二个问题。我有下表 |-----|-------|------|------| |._id.|..INFO.|.DONE.|.LAST.| |..1..|...A...|...N..|.
这个问题在这里已经有了答案: 关闭 12 年前。 Possible Duplicates: Why are there sometimes meaningless do/while and if/e
来自 wikibook在 F# 上有一小部分它说: What does let! do?# let! runs an async object on its own thread, then it i
我在 Real World Haskell 书中遇到了以下函数: namesMatching pat | not (isPattern pat) = do exists do
我有一个类似于下面的用例,我创建了多个图并使用 gridExtra 将它们排列到一些页面布局中,最后使用 ggsave 将其保存为 PDF : p1 % mutate(label2
当我使用具有 for 循环的嵌套 let 语句时,如果没有 (do (html5 ..)),我将无法运行内部 [:tr]。 (defpartial column-settings-layout [&
执行 vagrant up 时出现此错误: anr@anr-Lenovo-G505s ~ $ vagrant up Bringing machine 'default' up with 'virtua
# ################################################# # Subroutine to add data to the table Blas
我想创建一个检查特定日期格式的读取主机。此外,目标是检查用户输入是否正确,如果不正确,则提示应再次弹出。 当我刚接触编程时,发现了这段代码,这似乎很合适。我仍然在努力“直到” do {
我关注这个tutorial在谷歌云机器学习引擎上进行培训。我一步一步地跟着它,但是在将 ml 作业提交到云时我遇到了错误。我运行了这个命令。 sam@sam-VirtualBox:~/models/r
我是一名优秀的程序员,十分优秀!