如何在类之间共享方法

时间:2012-11-29 03:37:16

标签: objective-c ios xcode xcode4.5

我想将标签的文本设置为来自不同类的单元格的文本。

在我的MasterViewController中,我有:

// SAVE TEXT OF SELECTED CELL

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    cellString = cell.textLabel.text;
}

//SHARES VARIABLES BETWEEN CLASSES

- (ChemProjectMasterViewController*) sharedVariable
{
    static ChemProjectMasterViewController *myVariable = nil;

    if (myVariable == nil)
    {
        myVariable = [[[self class] alloc] init];
        myVariable.sharedCellString = cellString;
    }

    return myVariable;
}

我也在.h

中有这个
@interface ChemProjectMasterViewController : UITableViewController

@property (nonatomic)NSString *cellString;
@property (nonatomic)NSString *sharedCellString;
+(ChemProjectMasterViewController*) sharedVariable;

@end

现在,我要从中访问此方法的类是DetailViewController。我有:

detailDescriptionLabel.text = [ChemProjectMasterViewController sharedVariable].sharedCellString;

detailDescriptionLabel只是一个文本标签。

** 该程序编译正常,但我点击按钮时标签文本设置更改。应用程序运行平稳,直到我按下按钮导致它崩溃。主要目标是将DetailViewController中的标签文本设置为MasterViewController中单元格的文本。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我看到的东西很少。

第一个,在.h中你声明为类方法(+),而在.m中它是实例( - )。

第二个是@property (nonatomic)NSString *sharedCellString;,这是不安全的,无法保证,使其变得强大。

如果有效,请告诉我?