2012-11-18 56 views
2

我无法使用我在我的tableview控制器实现中的tableviewcell文件中实现的方法之一。我试图搜索网页和Xcode帮助没有运气。我的代码看起来是这样的:无法使用其他文件中的类的方法

TableViewController.h:

#import TableViewCell.h 

    @interface TableViewController : UITableViewController 


    @property (nonatomic, strong) IBOutlet UIBarButtonItem *A1Buy; 
    @property (nonatomic, getter = isUserInteractionEnabled) BOOL userInteractionEnabled; 

    - (IBAction)A1Buy:(UIBarButtonItem *)sender; 

TableViewController.m:

@implementation A1ViewController 

    @synthesize A1Buy = _A1Buy; 
    @synthesize userInteractionEnabled; 

    - (IBAction)A1Buy:(UIBarButtonItem *)sender { 
    [TableViewCell Enable]; //this is where it gives an error 

    } 

TableViewCell.h:

@interface TableViewCell : UITableViewCell { 
    BOOL Enable; 
    BOOL Disable; 
    } 
    @property (nonatomic, getter = isUserInteractionEnabled) BOOL userInteractionEnabled; 

TableViewCell.m:

@implementation TableViewCell; 

    @synthesize userInteractionEnabled; 

    - (BOOL) Enable { 
    return userInteractionEnabled = YES; 
    } 
    - (BOOL) Disable { 
    return userInteractionEnabled = NO; 
    } 

正如你可以看到我试图启用用户与按钮的交互,但Xcode只给了我像“类没有这种方法”和类似的东西的错误。所有文件都正确导入,所以这不是为什么。 希望得到任何帮助。谢谢!

回答

1

首先,根据可可标准命名你的方法和变量 - 类有一个大写的第一个字母,变量和方法有一个小写的第一个字母。

这样做,应该使之明显,你呼吁的TableViewCell类,它实际上是一个实例方法Enable方法。您需要获取指向特定表格视图单元格的指针并调用该方法。

此外,您实施的方法非常混乱。为什么他们以布尔值的形式返回赋值结果?这将始终返回YES。您可能需要学习一些基本的Objective-C培训资源。

+2

我第二段最后一段。请为你自己写一本好书。 * iOS编程:Big Nerd Ranch Guide *是轻松学习编程的最佳书籍之一。请帮你一个忙,花点时间和金钱去读,阅读本书。在短短的时间内,您将成为一个更好的开发人员,而不仅仅是从现在的位置进行反复试验。 – fzwo

0

您被声明为- (BOOL) Enable作为实例方法。您无法使用Class name调用实例方法。 解决方案:

  1. 声明的方法类方法

    + (BOOL) Enable 
    
  2. 创建一个类的对象,然后使用该对象

    TableViewCell *cellObj = [[TableViewCell alloc] init]; 
    [cellObj Enable]; 
    

请阅读更多调用该方法关于课程方法here

请参考ios编码惯例here