财产不符合协议

发布于 2024-12-20 06:01:59 字数 398 浏览 1 评论 0原文

我在让我的财产符合我自制的协议时遇到问题,我的财产声明如下:

    @property(assign)id <MainViewDatasource> datasource

我运行此代码来测试它是否符合协议:

    if ([datasource conformsToProtocol:@protocol(MainViewDatasource)])
    NSLog(@"datasource conforms to MainViewDatasource");

    if(datasource == nil)
    NSLog(@"datasource is nil");

在控制台中它说数据源为零。我该如何解决这个问题?

I am having problems getting my property to conform to my self made protocol my property is declared like this:

    @property(assign)id <MainViewDatasource> datasource

And I run this code to test if it conforms to the protocol:

    if ([datasource conformsToProtocol:@protocol(MainViewDatasource)])
    NSLog(@"datasource conforms to MainViewDatasource");

    if(datasource == nil)
    NSLog(@"datasource is nil");

And in the Console it says that datasource is nil. How do I fix this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

吃颗糖壮壮胆 2024-12-27 06:01:59

如果您不设置数据源属性,它将保留默认值 0x0(nil)。

If you don't set your datasource property, it will remain at the default value, 0x0 (nil).

奈何桥上唱咆哮 2024-12-27 06:01:59

代码:[datasource conformsToProtocol:@protocol(MainViewDatasource)]本身在执行后仅返回一个布尔值。正如其他人所说,它实际上并没有设置数据源属性。如果您只想在所述属性符合协议时进行一些设置,您可以向该 if 块添加一些内容:

if ([datasource conformsToProtocol:@protocol(MainViewDatasource)])
{    
    NSLog(@"datasource conforms to MainViewDatasource");
    // do additional set up code here that is needed, now that you know your datasource
    // conforms to the MainViewDatasource protocol.
}
if(datasource == nil)
NSLog(@"datasource is nil");

The code: [datasource conformsToProtocol:@protocol(MainViewDatasource)] itself only returns a Boolean value after it is executed. As others have stated, it doesn't actually set up the datasource property. If you wanted to do some set up only if the said property conforms to a protocol, you would add something to that if block:

if ([datasource conformsToProtocol:@protocol(MainViewDatasource)])
{    
    NSLog(@"datasource conforms to MainViewDatasource");
    // do additional set up code here that is needed, now that you know your datasource
    // conforms to the MainViewDatasource protocol.
}
if(datasource == nil)
NSLog(@"datasource is nil");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文