ios - 创建一个 objective-c 全局类

标签 ios objective-c class global class-design

我确定我只是在这里遗漏了一些简单的东西,但是尽管我在这里查看了其他示例,但找不到答案,我的代码似乎是相同的。
我正在尝试使用一些可以从项目中的其他类访问的方法来定义一个全局类。我可以定义它,但不能从我的其他类访问方法,尽管我总是将全局类头导入到我想使用该方法的类。继承人的代码:
第 1 届全局类(class)定义:

#import <Foundation/Foundation.h>

@interface GlobalMethods : NSObject {}

- (unsigned long long)getMilliSeconds:(NSDate*)d;

- (NSDate *)getDateFromMs:(unsigned long long)ms;

@end

#import "GlobalMethods.h"

@implementation GlobalMethods

//SET DATE TO MILLISECONDS 1970 EPOCH

- (unsigned long long)getMilliSeconds:(NSDate*)d
{
    unsigned long long seconds = [d timeIntervalSince1970];

    unsigned long long milliSeconds = seconds * 1000;


    return milliSeconds;
}

// GET DATE FROM MILLISECONDS 1970 EPOCH

- (NSDate *)getDateFromMs:(unsigned long long)ms
{
    unsigned long long seconds = ms / 1000;
    NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970: seconds];

    return date;
}


@end

and then where I want to use my methods in another class:

#import "GlobalMethods.h"


// GET MILLISECONDS FROM 1970 FROM THE PICKER DATE
    NSDate *myDate = _requestDatePicker.date;

    milliSeconds = [self getMilliSeconds: myDate];

错误是:没有可见的 viewcontroller 接口(interface)声明选择器 getMilliSeconds。

感谢您对此的帮助。

最佳答案

您正在尝试调用 getMilliSeconds: View Controller 类的实例上的方法(它是 GlobalMethods 类的实例方法)。这就是错误的原因。

如所写,您需要更改此行:

milliSeconds = [self getMilliSeconds: myDate];

到:
GlobalMethods *global = [[GlobalMethods alloc] init];
milliSeconds = [global getMilliSeconds:myDate];

更好的解决方案是首先更改 GlobalMethods 的所有实例方法。类是类方法。换句话说,在 GlobalMethods 的 .h 和 .m 文件中,更改前导-+对于这两种方法。

然后在您的 View Controller 中,您可以执行以下操作:
milliSeconds = [GlobalMethods getMilliSeconds:myDate];

关于ios - 创建一个 objective-c 全局类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32878828/

相关文章:

c++ - 对对象使用 new

c++ - 将 atan2 与类模板一起使用失败,对重载函数的调用不明确

JavaScript 类 : Member Defined In Constructor Undefined?

ios - 显示 UINavigationBar 不工作

ios - 在构建应用程序目标的文件 XCTest 中缺少所需的体系结构 armv7

ios - 当设备方向发生变化时,导致 subview 重绘的正确方法是什么?

ios - 带有来自 NSMutableArray 的数据的 UITableView 返回空

objective-c - 使用主视图中的数据在 subview 上加载数组

ios - 如何配置 NSURLSession 请求在连接断开时的重试次数?

ios - 如何在 Swift 中的 TextView 旁边添加一个按钮(以编程方式或在 Storyboard 中)?