使用多个类中的相同实例

发布于 2024-12-11 10:14:39 字数 163 浏览 0 评论 0原文

我有一个小问题,当我必须访问一个类时,我创建一个新实例,

Class *class = [[Class alloc] init];

问题是我不想创建一个新实例,而是使用当前实例,我只想在两个类之间进行通信...如何在不创建新实例的情况下传递值?

I have a little problem, when I have to access to one class I create a new instance

Class *class = [[Class alloc] init];

the problem is that I don't want to create a new instance but use the current instance, I want only to communicate between two class...how can I pass a value without create a new instance?

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

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

发布评论

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

评论(1

把时间冻结 2024-12-18 10:14:39

您可以使用 Singleton 类创建一个可以在应用程序的生命周期内访问的共享对象,这是一种简单(尽管不是 100% 万无一失)的创建方法:

+ (id) sharedInstance {
    static Foo *__sharedInstance;
    if (nil == __sharedInstance) {
        __sharedInstance = [[Foo alloc] init];
    }
    return __sharedInstance;
}

更多 这里

如果你只是想执行特定的操作,或者从类中获取信息,你可以使用类方法,在方法名称中使用“+”而不是“-”,如下所示:

+ (void) doSomething {
    NSLog(@"This class is %@", self);
}

然后您可以简单地调用 [Class doSomething] 来执行操作,而无需创建新实例。

You can use a Singleton class to create a shared object that can be accessed for the lifetime of the app, here's a simple (though not 100% foolproof) way to create one:

+ (id) sharedInstance {
    static Foo *__sharedInstance;
    if (nil == __sharedInstance) {
        __sharedInstance = [[Foo alloc] init];
    }
    return __sharedInstance;
}

More here

If you just want to perform specific operations, or get information from the class, you can use a class method by using "+" instead of "-" in the method name like so:

+ (void) doSomething {
    NSLog(@"This class is %@", self);
}

Then you can simply call [Class doSomething] to perform operations without having to create a new instance.

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