[英]Creating an objective c global class
我確定我在這里只是遺漏了一些簡單的東西,但是雖然我在這里查看了其他示例,但我找不到答案,我的代碼似乎是一樣的。 我正在嘗試使用一些方法定義一個全局類,我可以從項目中的其他類訪問這些方法。 我可以定義它,但不能從我的其他類訪問方法,雖然我總是將全局類頭導入到我想要使用該方法的類。 下面是代碼:1st Global class def:
#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沒有可見的接口聲明了選擇器getMilliSeconds。
感謝您的幫助。
您正在嘗試在視圖控制器類的實例上調用getMilliSeconds:
方法(這是GlobalMethods
類的實例方法)。 這是錯誤的原因。
如上所述,您需要更改此行:
milliSeconds = [self getMilliSeconds: myDate];
至:
GlobalMethods *global = [[GlobalMethods alloc] init];
milliSeconds = [global getMilliSeconds:myDate];
更好的解決方案是首先將GlobalMethods
類的所有實例方法更改為類方法。 換句話說,在GlobalMethods
的.h和.m文件中,將兩個方法的前導-
更改為+
。
然后在視圖控制器中,您可以:
milliSeconds = [GlobalMethods getMilliSeconds:myDate];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.