我正在開發一個IOS和AppleWatch應用程序。這些應用在一個應用中。我的應用程序min IOS版本是IOS 6.0。但是用於AppleWatch代碼的min IOS版本是IOS 9.0。我在IOS 6設備上測試了這個代碼,但是這個代碼塊運行。我不想在IOS 6中運行這個代碼塊。我想在IOS 9.0中運行。請幫忙。IOS舊版檢查
.h
#import <Foundation/Foundation.h>
#if defined(__IPHONE_9_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_9_0
#import <WatchConnectivity/WatchConnectivity.h>
#endif
#if defined(__IPHONE_9_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_9_0
@interface WatchConnectivityManager : NSObject<WCSessionDelegate>{
#else
@interface WatchConnectivityManager : NSObject{
#endif
}
@property(nonatomic, assign) BOOL oneTimeSaved;
+(WatchConnectivityManager*)getInstance;
-(void)sharedDefaultsDataSave:(NSString*)params;
@end
.m
- (id) init
{
if (self = [super init]) {
#if defined(__IPHONE_9_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_9_0
//This code run IOS 9.0
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9.0") && NSClassFromString(@"WCSession")!=nil && [WCSession isSupported]) {
WCSession *session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
}
#endif
}
/* finally return the object */
return self;
}
永遠不要使用代碼來檢測iOS版本,這是錯誤的。只是'WCSession'類是否可用應該就足夠了。 – rckoenes
@rckoenes謝謝你。其實我的問題是.h文件。我更新了我的問題添加了.h代碼。我應該如何處理這種情況。 – hiwordls
'#if'是一個編譯器指令,因此如果您使用iOS 9 SDK編譯它,我將始終使用此代碼。你可以刪除這個。 – rckoenes