我有一個非常簡單的java代碼。我不知道如何在Objective C中做到這一點。特別是調用getLocalAddress()方法並將其分配給靜態字符串變量的靜態部分。我知道如何在Objective中設置靜態變量和靜態方法,但我不知道如何在java中實現靜態變量。 在此先感謝...目標C,鏈接錯誤與extern變量
public class Address {
public static String localIpAddress;
static {
localIpAddress = getLocalIpAddress();
}
public Address() {
}
static String getLocalIpAddress() {
//do something to get local ip address
}
}
我說這在我的.h文件
#import <Foundation/Foundation.h>
extern NSString *localIpAddress;
@class WifiAddrss;
@interface Address : NSObject {
}
@end
我的.m文件看起來像
#import "Address.h"
#import "WifiAddress.h"
@implementation Address
+(void)initialize{
if(self == [Address class]){
localIpAddress = [self getLocalIpAddress];
}
}
+(NSString *)getLocalIpAddress{
return address here
}
-(id)init{
self = [super init];
if (self == nil){
NSLog(@"init error");
}
return self;
}
@end
而且現在我收到一個鏈接錯誤,它抱怨「extern NSString * localIpAddress」部分。如果我將extern更改爲靜態,它可以正常工作。但我想要做的是,我想讓「localIpAddress」變量的範圍變得更爲寬泛。因爲如果我在Objective-C的變量前面放置「static」,那麼該變量僅在類中可見。但是這一次,我想把它作爲一個變量。所以我的問題是,如何讓「localIpAddress」變量作爲grobal變量第一次創建Address類時初始化一次..在此先感謝...
非常感謝你!有效!!!!! – codereviewanskquestions 2011-02-17 07:24:24