重写 Obj-c 中的方法不起作用

发布于 2024-11-04 18:16:03 字数 441 浏览 0 评论 0原文

我仍然处于 Obj-c 的学习曲线上。 我正在尝试重写 Three20 中 TTThumbsTableViewCell 中的 setColumnCount 方法, 但我不知道为什么它不起作用。 在超类(TTThumbsTableViewCell)的方法setColumnCount中,我添加了一个NSLog(@“Test Super”),在setColumnCount方法中添加了TThumbsTableViewCell的子类,我添加了NSLog(@“Test Sub”),并且子类方法从不打印出“测试子”。

我不确定我是否在 Obj-C 中正确重写,基本上我将整个方法 setColumnCount 从 TTThumbsTableViewCell 复制到子类并在那里修改它,但它仍然不会在子类中运行重写的方法。

我有什么遗漏的吗? 我正在使用 XCode 4

提前致谢

Brett

南非

I'm still on a learning curve with Obj-c.
I'm trying to override the setColumnCount method in the TTThumbsTableViewCell from Three20,
but I don't know why It wont work.
In the method setColumnCount from the super class (TTThumbsTableViewCell) I've added a NSLog(@"Test Super") and the subclass of TTThumbsTableViewCell in setColumnCount method I've add NSLog(@"Test Sub") and the subclass method never prints out "Test Sub".

I'm not sure if I'm overriding correctly in Obj-C, basically I copy the whole method setColumnCount from TTThumbsTableViewCell to the subClass and modify it there, but it still doesn't run the overridden method in the subclass.

Is there something I'm missing?
Im working with XCode 4

Thanks in advance

Brett

South Africa

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

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

发布评论

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

评论(1

逆夏时光 2024-11-11 18:16:07

我有一个名为 GridImage

@interface GridImage 的 TTThumbsTableViewCell 子类: TTThumbsTableViewCell '<'TTPhoto>{

//Code...

@end

.m 覆盖的是 setColumnCount 方法

'#'import "GridImage.h"

@implementation GridImage

  • (void)setColumnCount:(NSInteger ) 列数 {
    NSLog(@"测试子");
    if (_columnCount !=columnCount) {
    for (TTThumbView* _thumbViews 中的thumbView) {
    [thumbView 从Superview 删除];
    }
    [_thumbViewsremoveAllObjects];

    _columnCount = 列计数;
    
    for (NSInteger i = _thumbViews.count; i < _columnCount; ++i) {
        TTThumbView*thumbView = [[[TTThumbView alloc] init] autorelease];
        [thumbView addTarget:self 操作:@selector(thumbTouched:)
            forControlEvents:UIControlEventTouchUpInside];
        [self.contentView addSubview:thumbView];
        [_thumbViews addObject:thumbView];
        如果(_照片){
            [自我分配PhotoAtIndex:_photo.index+i toView:thumbView];
        }
    }
    

    }
    }

这可能与 '<'TTPhoto> 有关吗 Three20 的协议?

I have a TTThumbsTableViewCell subClass called GridImage

@interface GridImage : TTThumbsTableViewCell '<'TTPhoto>{

//Code...

@end

The .m override's the setColumnCount method

'#'import "GridImage.h"

@implementation GridImage

  • (void)setColumnCount:(NSInteger)columnCount {
    NSLog(@"Test Sub");
    if (_columnCount != columnCount) {
    for (TTThumbView* thumbView in _thumbViews) {
    [thumbView removeFromSuperview];
    }
    [_thumbViews removeAllObjects];

    _columnCount = columnCount;
    
    for (NSInteger i = _thumbViews.count; i < _columnCount; ++i) {
        TTThumbView* thumbView = [[[TTThumbView alloc] init] autorelease];
        [thumbView addTarget:self action:@selector(thumbTouched:)
            forControlEvents:UIControlEventTouchUpInside];
        [self.contentView addSubview:thumbView];
        [_thumbViews addObject:thumbView];
        if (_photo) {
            [self assignPhotoAtIndex:_photo.index+i toView:thumbView];
        }
    }
    

    }
    }

Could it be something to do with the '<'TTPhoto> protocol from Three20?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文