2016-01-21 67 views
1

我正在开发一个AppleWatch应用程序。在开发IOS应用程序min版本IOS 6.0之前。我正在使用WatchOS 2.0开发AppleWatch应用程序。 IOS应用程序类下的类代码。 WatchConnectivity框架和WCSessionDelegate协议需要min IOS版本9.0。那么,如何运行老版本没有崩溃IOS协议和框架最低IOS版本检查

.h 
#import <Foundation/Foundation.h> 
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_9_0 
#import <WatchConnectivity/WatchConnectivity.h> 
#endif 

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __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 
#import "WatchConnectivityManager.h" 

@implementation WatchConnectivityManager 
@synthesize oneTimeSaved; 

static WatchConnectivityManager *instance =nil; 


- (id) init 
{ 
    /* first initialize the base class */ 

    /* then initialize the instance variables */ 
    if (self = [super init]) { 
     #if __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_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; 
} 
@end 

回答

0
#if __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_9_0 
    // after iPhone OS SDK 9.0 
#else 
    // before iPhone OS SDK 9.0 
#endif 

不能使用WatchConnectivity框架和WCSessionDelegate协议iOS9.0.So之前做同样的事情通过使用较低的API或者什么都不做。

+0

更新我的问题你是怎么说的。但我不能调试.m文件代码 – hiwordls

0

您的Base SDK应该是iOS 9.0才能导入框架,而您可以将部署目标设置为9.0以下。它会构建您的项目,但显然您需要在调用WatchConnectivity的任何方法之前检查可用性检查。