gpt4 book ai didi

ios - 文件所有者混淆 iOS

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:00:03 24 4
gpt4 key购买 nike

假设我有以下 xibs:

  • 问题选择器 View Controller
    • 文件所有者:IssueSelectorViewController
  • IssueCell - 文件所有者 - IssueSelectorViewController
    • 文件所有者:IssueSelectorViewController

在 IssueSelectorViewController.h 文件中,我有以下内容:

@interface IssueSelectorViewController : UIViewController <AQGridViewDelegate, AQGridViewDataSource, ReaderViewControllerDelegate,UIScrollViewDelegate, IconDownloaderDelegate>
@property (nonatomic, strong) IBOutlet AQGridView * gridView;
@property (nonatomic, strong) IBOutlet IssueCell *gridViewCellContent;
...
@end

IssueSelectorViewController.xib 中,我从 gridView -->Actual Grid View 建立了一个 socket 连接。这对我来说很有意义,因为我在这个对象中有一个 GridView 并想连接到它以便我可以从代码访问它。

IssueCell.xib 中单击文件所有者时,我有一个 socket gridViewCellContent,我将其连接到 IssueCell 对象。这有效并允许我的程序运行,但这到底在做什么?在 IssueSelectorviewController 中,我需要访问 IssueCell 来确定每个单元格的宽度和高度。我在示例中看到这样做,但我不完全理解。

编辑:

这是我使用 self.gridViewCellContent 的地方,它是如何工作的?它指向哪个 IssueCell?

- (CGSize)portraitGridCellSizeForGridView:(AQGridView *)aGridView
{
[[NSBundle mainBundle] loadNibNamed:@"IssueCell" owner:self options:nil];
return self.gridViewCellContent.frame.size;
}

最佳答案

nib 中的“文件所有者”是代理或占位符。实际加载 nib 时,与此占位符的任何连接都将连接到实际拥有 nib 的真实对象。因此,当您执行 [UIViewController initWithNibName:bundle:] 时,文件的所有者占位符将替换为实际的 View Controller 对象。

加载自定义表格 View 单元格时非常相似(我假设您在 tableView:cellForRowAtIndexPath: 方法中执行此操作)。您加载 nib,指定所有者,然后该所有者对象获取“文件所有者”占位符在 nib 本身中的所有连接。

我希望这是有道理的?

如果您发布 tableView:cellForRowAtIndexPath:,您可以看到建立连接的位置。 (或者,如果您为 tableView 注册了一个 nib,那么您在创建它时指定了所有者。)

编辑

好的,所以根据您发布的代码:

[[NSBundle mainBundle] loadNibNamed:@"IssueCell"owner:self options:nil];

您将所有者指定为“self”,因此“self.gridViewCellContent”应该是刚刚从 nib 加载的新单元格,假设您在 nib 中建立了正确的连接。加载 nib 时,与 nib 中“文件所有者”的任何连接现在都将与“self”(您的 View Controller )建立连接。

(当该方法需要一个 AQGridView* 作为参数时,你在那里加载 Nib 似乎很奇怪,但我想你知道你在那里做什么)

关于ios - 文件所有者混淆 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8592318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com