Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone OS开发者协议中是否禁止包装类?_Iphone_Iphone Sdk 3.0 - Fatal编程技术网

iPhone OS开发者协议中是否禁止包装类?

iPhone OS开发者协议中是否禁止包装类?,iphone,iphone-sdk-3.0,Iphone,Iphone Sdk 3.0,阅读了iPhone开发者协议的修订后,我有点困惑 虽然它列出了允许使用的语言,但我不明白哪些语言属于被禁止的语言 这是否包括包装器类?如果代码是用Objective C编写的,但不是正式的Apple类/库,该怎么办? 我想知道一些事情,比如: SQLite包装,例如 图表/图形库 如果有人能澄清这一点,我将不胜感激。修订版声明禁止通过中间翻译或兼容层或工具链接到文档化API的应用程序,因此这只会影响从其他语言/平台(Monotouch、flash到iphone等)翻译代码的工具. 所以你应

阅读了iPhone开发者协议的修订后,我有点困惑

虽然它列出了允许使用的语言,但我不明白哪些语言属于被禁止的语言

这是否包括包装器类?如果代码是用Objective C编写的,但不是正式的Apple类/库,该怎么办?

我想知道一些事情,比如:

  • SQLite包装,例如
  • 图表/图形库

如果有人能澄清这一点,我将不胜感激。

修订版声明禁止通过中间翻译或兼容层或工具链接到文档化API的应用程序,因此这只会影响从其他语言/平台(Monotouch、flash到iphone等)翻译代码的工具. 所以你应该没问题,我以前使用过Three20,并且在应用商店中见过其他使用它的应用。

修订版规定,禁止通过中间翻译或兼容层或工具链接到文档化API的应用程序,因此,这只会影响从其他语言/平台(Monotouch、flash到iphone等)翻译代码的工具。所以你应该没问题,我以前使用过Three20,并且在应用商店中见过其他使用它的应用。

根据第3.3.1条的条款,库和包装器是允许的,只要它们

  • 用C、Objul-C、C++或JavaScript
  • 编写
  • 遵守所有其他SDK协议条款(例如,不要为一种语言实现解释器)
Three20和SQL包装器都可以使用,并在很多项目中使用

应用程序只能按照苹果规定的方式使用记录的API,不得使用或调用任何私有API


这是指苹果公司提供的API。您只能将Apple的代码/框架与文档化的函数一起使用,而不能与任何可能存在但未文档化的私有函数一起使用。

根据第3.3.1条的条款,允许使用库和包装器,只要它们

  • 用C、Objul-C、C++或JavaScript
  • 编写
  • 遵守所有其他SDK协议条款(例如,不要为一种语言实现解释器)
Three20和SQL包装器都可以使用,并在很多项目中使用

应用程序只能按照苹果规定的方式使用记录的API,不得使用或调用任何私有API


这是指苹果公司提供的API。您只能将Apple的代码/框架与文档化的函数一起使用,而不能与任何可能存在但未文档化的私有函数一起使用。

我开发了包装类,这将对您非常有帮助

首先下载Facebook的最新SDK

创建一个名为“FacebookHelper”的类

在.h文件中添加以下代码:

#import <Foundation/Foundation.h>
#import "FBConnect.h"

@protocol FBApiCallDelegate;

typedef enum FBApiCallType
{
FBApiCallNone = 0,
FBApiCallGetUserInfo = 1,
FBApiCallGetUserFriend = 2,
FBApiCallPostMessage = 3,
FBApiCallPostPicture = 4,
FBApiCallShareLink = 5,
FBApiCallPostAll = 6,
FBApiCallPostMessageFriendWall = 7

} FBApiCallType;

@interface FacebookHelper : NSObject<FBRequestDelegate, FBDialogDelegate, FBSessionDelegate> {
Facebook *objFacebook;
NSArray *arrPermission;

id<FBApiCallDelegate> apiCallDelegate;
FBApiCallType currentApiCallType;

NSString *strMessage;
NSString *strUrlTitle;
NSString *strUrl;
NSString *strCaption;
NSString *strPictureUrl;
UIImage *image;
}
@property(readonly) Facebook *objFacebook;

@property (nonatomic, assign) id<FBApiCallDelegate> apiCallDelegate;
@property (nonatomic, assign) FBApiCallType currentApiCallType;

@property (nonatomic, retain) NSString *strMessage;
@property (nonatomic, retain) NSString *strUrlTitle;
@property (nonatomic, retain) NSString *strUrl;
@property (nonatomic, retain) NSString *strCaption;
@property (nonatomic, retain) NSString *strPictureUrl;
@property (nonatomic, retain) UIImage *image;


+ (FacebookHelper *) sharedInstance;
- (void)releaseObjects;

//Store Authentication
- (void)storeAuthData:(NSString *)accessToken expiresAt:(NSDate *)expiresAt;
- (void)removeAuthData;

//Public Methods
-(BOOL)isLoggedIn;
-(void)loginToFacebook;
-(void)logoutFromFacebook;

//Facebook Methods
-(void)getUserInfo;                 //Get User Info
-(void)getUserFriends;              //Get User's Friend List
-(void)postMessageToWall;           //Post Message to FB Wall
-(void)postPictureToWall;           //Post Picture to FB Wall
-(void)shareLinkOnWall;             //Share Link on FB Wall
-(void)postAllToWall;               //Post All - Message, Link, Caption, PhotoUrl
-(void)postMessageToFriendWall;     //Post Message to Friend Wall


//String Methods
- (BOOL)isEmptyString:(NSString *)strValue;
- (NSString *) trimWhiteSpace:(NSString *)strValue;

// Default AlertView
-(void)showAlertView:(NSString *)pstrTitle withMessage:(NSString *)pstrMessage delegate:(id)pDelegate;

@end

@protocol FBApiCallDelegate <NSObject>

@optional

//Get User Info Delegate
-(void)finishUserInfoResponse:(id)result;
-(void)failedUserInfoResponse:(NSError *)error;

//Get User's Friend List
-(void)finishUserFriendResponse:(id)result;
-(void)failedUserFriendResponse:(NSError *)error;

//Post Message to FB Wall Delegate
-(void)finishPostMessageResponse:(id)result;
-(void)failedPostMessageResponse:(NSError *)error;

//Post Picture to FB Wall
-(void)finishPostPictureResponse:(id)result;
-(void)failedPostPictureResponse:(NSError *)error;

//Share Link on FB Wall
-(void)finishShareLinkResponse:(id)result;
-(void)failedShareLinkResponse:(NSError *)error;

//Post All - Message, Link, Caption, PhotoUrl
-(void)finishPostAllResponse:(id)result;
-(void)failedPostAllResponse:(NSError *)error;

//Post Message to Friend Wall Delegate
-(void)finishPostMsgFriendWallResponse:(id)result;
-(void)failedPostMsgFriendWallResponse:(NSError *)error;

@end
就这样。现在我们的Facebook包装器类已经准备好了

为更好的组织,在班级下面创建3个

FacebookGlobal.h

添加以下数据:

#define g_kFacebookAppId        @"<Your AppID>"
#define g_kFacebookAppSecret    @"<Your Secret>"


#define g_kPostMessage          @"<Message>"
#define g_kPostUrlTitle         @"<Title>"
#define g_kPostUrl              @"<Url>"
#define g_kPostCaption          @"<Caption>"
#define g_kPostPictureUrl       @"<Image Url>"
#define g_kFacebookAccessToken      @"FBAccessTokenKey"
#define g_kFacebookExpirationDate   @"FBExpirationDateKey"
//AppID Missing 
#define msgFBAppIDMissing @"Missing AppID"

//Session Invalidated
#define msgFBSessionInvalidateTitle @"Auth Exception"
#define msgFBSessionInvalidateMessage @"Your session has expired."
FacebookMessage.h

添加以下数据:

#define g_kFacebookAppId        @"<Your AppID>"
#define g_kFacebookAppSecret    @"<Your Secret>"


#define g_kPostMessage          @"<Message>"
#define g_kPostUrlTitle         @"<Title>"
#define g_kPostUrl              @"<Url>"
#define g_kPostCaption          @"<Caption>"
#define g_kPostPictureUrl       @"<Image Url>"
#define g_kFacebookAccessToken      @"FBAccessTokenKey"
#define g_kFacebookExpirationDate   @"FBExpirationDateKey"
//AppID Missing 
#define msgFBAppIDMissing @"Missing AppID"

//Session Invalidated
#define msgFBSessionInvalidateTitle @"Auth Exception"
#define msgFBSessionInvalidateMessage @"Your session has expired."
在.pch文件中导入以下文件:

#import "FacebookGlobal.h"
#import "FacebookKey.h"
#import "FacebookMessage.h"

#import "FacebookHelper.h"
现在,您可以使用了

在视图控制器中,添加以下代理:

<FBApiCallDelegate>
- (void)viewWillAppear:(BOOL)animated {
/*
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
[fbHelper logoutFromFacebook];
*/


//Get User Info
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
fbHelper.apiCallDelegate = self;
[fbHelper getUserInfo];


/*
//Get User's Friend List
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
fbHelper.apiCallDelegate = self;
[fbHelper getUserFriends];
*/

/*
//Post Message to FB Wall
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
fbHelper.apiCallDelegate = self;
fbHelper.strMessage = g_kPostMessage;
[fbHelper postMessageToWall];
*/

/*
//Post Picture to FB Wall
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
fbHelper.apiCallDelegate = self;
fbHelper.strMessage = g_kPostMessage;
fbHelper.image = [UIImage imageNamed:@"postPicture.jpg"];
[fbHelper postPictureToWall];
*/

/*
//Share Link on FB Wall
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
fbHelper.apiCallDelegate = self;
fbHelper.strUrl = g_kPostUrl;
fbHelper.strMessage = g_kPostMessage;
[fbHelper shareLinkOnWall];
*/

/*
//Post All to FB Wall
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
fbHelper.apiCallDelegate = self;
fbHelper.strMessage = g_kPostMessage;
fbHelper.strUrlTitle = g_kPostUrlTitle;
fbHelper.strUrl = g_kPostUrl;
fbHelper.strCaption = g_kPostCaption;
fbHelper.strPictureUrl = g_kPostPictureUrl;
[fbHelper postAllToWall];
 */

/*
//Post Message to Friend Wall
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
fbHelper.apiCallDelegate = self;
fbHelper.strMessage = g_kPostMessage;
[fbHelper postMessageToFriendWall];
*/
}



#pragma mark -
#pragma mark Get User Info Delegate
-(void)finishUserInfoResponse:(id)result{
NSLog(@"UserInfo response successed!");
NSLog(@"%@", result);

}
-(void)failedUserInfoResponse:(NSError *)error{
NSLog(@"UserInfo response failed!");
}

#pragma mark -
#pragma mark Get User's Friend List
-(void)finishUserFriendResponse:(id)result{
NSLog(@"User FriendList response successed!");
NSLog(@"%@", result);
}
-(void)failedUserFriendResponse:(NSError *)error{
NSLog(@"User FriendList response failed!");
}

#pragma mark -
#pragma mark Post Message to FB Wall Delegate
-(void)finishPostMessageResponse:(id)result{
NSLog(@"Post message successed!");
NSLog(@"%@", result);
}
-(void)failedPostMessageResponse:(NSError *)error{
NSLog(@"Post message failed!");
}

#pragma mark -
#pragma mark Post Picture to FB Wall
-(void)finishPostPictureResponse:(id)result{
NSLog(@"Post picture successed!");
NSLog(@"%@", result);
}
-(void)failedPostPictureResponse:(NSError *)error{
NSLog(@"Post picture failed!");
}

#pragma mark -
#pragma mark Share Link on FB Wall
-(void)finishShareLinkResponse:(id)result{
NSLog(@"Share link successed!");
NSLog(@"%@", result);
}
-(void)failedShareLinkResponse:(NSError *)error{
NSLog(@"Share link failed!");
}

#pragma mark -
#pragma mark Post All - Message, Link, Caption, PhotoUrl
-(void)finishPostAllResponse:(id)result{
NSLog(@"Post all successed!");
NSLog(@"%@", result);
}
-(void)failedPostAllResponse:(NSError *)error{
NSLog(@"Post all failed!");
}

#pragma mark -
#pragma mark Post Message to Friend Wall Delegate
-(void)finishPostMsgFriendWallResponse:(id)result{
NSLog(@"Post message to friend wall successed!");
NSLog(@"%@", result);
}
-(void)failedPostMsgFriendWallResponse:(NSError *)error{
NSLog(@"Post message to friend wall failed!");
}
快乐编码:)


享受。

我开发了包装器类,这将对您非常有帮助

首先下载Facebook的最新SDK

创建一个名为“FacebookHelper”的类

在.h文件中添加以下代码:

#import <Foundation/Foundation.h>
#import "FBConnect.h"

@protocol FBApiCallDelegate;

typedef enum FBApiCallType
{
FBApiCallNone = 0,
FBApiCallGetUserInfo = 1,
FBApiCallGetUserFriend = 2,
FBApiCallPostMessage = 3,
FBApiCallPostPicture = 4,
FBApiCallShareLink = 5,
FBApiCallPostAll = 6,
FBApiCallPostMessageFriendWall = 7

} FBApiCallType;

@interface FacebookHelper : NSObject<FBRequestDelegate, FBDialogDelegate, FBSessionDelegate> {
Facebook *objFacebook;
NSArray *arrPermission;

id<FBApiCallDelegate> apiCallDelegate;
FBApiCallType currentApiCallType;

NSString *strMessage;
NSString *strUrlTitle;
NSString *strUrl;
NSString *strCaption;
NSString *strPictureUrl;
UIImage *image;
}
@property(readonly) Facebook *objFacebook;

@property (nonatomic, assign) id<FBApiCallDelegate> apiCallDelegate;
@property (nonatomic, assign) FBApiCallType currentApiCallType;

@property (nonatomic, retain) NSString *strMessage;
@property (nonatomic, retain) NSString *strUrlTitle;
@property (nonatomic, retain) NSString *strUrl;
@property (nonatomic, retain) NSString *strCaption;
@property (nonatomic, retain) NSString *strPictureUrl;
@property (nonatomic, retain) UIImage *image;


+ (FacebookHelper *) sharedInstance;
- (void)releaseObjects;

//Store Authentication
- (void)storeAuthData:(NSString *)accessToken expiresAt:(NSDate *)expiresAt;
- (void)removeAuthData;

//Public Methods
-(BOOL)isLoggedIn;
-(void)loginToFacebook;
-(void)logoutFromFacebook;

//Facebook Methods
-(void)getUserInfo;                 //Get User Info
-(void)getUserFriends;              //Get User's Friend List
-(void)postMessageToWall;           //Post Message to FB Wall
-(void)postPictureToWall;           //Post Picture to FB Wall
-(void)shareLinkOnWall;             //Share Link on FB Wall
-(void)postAllToWall;               //Post All - Message, Link, Caption, PhotoUrl
-(void)postMessageToFriendWall;     //Post Message to Friend Wall


//String Methods
- (BOOL)isEmptyString:(NSString *)strValue;
- (NSString *) trimWhiteSpace:(NSString *)strValue;

// Default AlertView
-(void)showAlertView:(NSString *)pstrTitle withMessage:(NSString *)pstrMessage delegate:(id)pDelegate;

@end

@protocol FBApiCallDelegate <NSObject>

@optional

//Get User Info Delegate
-(void)finishUserInfoResponse:(id)result;
-(void)failedUserInfoResponse:(NSError *)error;

//Get User's Friend List
-(void)finishUserFriendResponse:(id)result;
-(void)failedUserFriendResponse:(NSError *)error;

//Post Message to FB Wall Delegate
-(void)finishPostMessageResponse:(id)result;
-(void)failedPostMessageResponse:(NSError *)error;

//Post Picture to FB Wall
-(void)finishPostPictureResponse:(id)result;
-(void)failedPostPictureResponse:(NSError *)error;

//Share Link on FB Wall
-(void)finishShareLinkResponse:(id)result;
-(void)failedShareLinkResponse:(NSError *)error;

//Post All - Message, Link, Caption, PhotoUrl
-(void)finishPostAllResponse:(id)result;
-(void)failedPostAllResponse:(NSError *)error;

//Post Message to Friend Wall Delegate
-(void)finishPostMsgFriendWallResponse:(id)result;
-(void)failedPostMsgFriendWallResponse:(NSError *)error;

@end
就这样。现在我们的Facebook包装器类已经准备好了

为更好的组织,在班级下面创建3个

FacebookGlobal.h

添加以下数据:

#define g_kFacebookAppId        @"<Your AppID>"
#define g_kFacebookAppSecret    @"<Your Secret>"


#define g_kPostMessage          @"<Message>"
#define g_kPostUrlTitle         @"<Title>"
#define g_kPostUrl              @"<Url>"
#define g_kPostCaption          @"<Caption>"
#define g_kPostPictureUrl       @"<Image Url>"
#define g_kFacebookAccessToken      @"FBAccessTokenKey"
#define g_kFacebookExpirationDate   @"FBExpirationDateKey"
//AppID Missing 
#define msgFBAppIDMissing @"Missing AppID"

//Session Invalidated
#define msgFBSessionInvalidateTitle @"Auth Exception"
#define msgFBSessionInvalidateMessage @"Your session has expired."
FacebookMessage.h

添加以下数据:

#define g_kFacebookAppId        @"<Your AppID>"
#define g_kFacebookAppSecret    @"<Your Secret>"


#define g_kPostMessage          @"<Message>"
#define g_kPostUrlTitle         @"<Title>"
#define g_kPostUrl              @"<Url>"
#define g_kPostCaption          @"<Caption>"
#define g_kPostPictureUrl       @"<Image Url>"
#define g_kFacebookAccessToken      @"FBAccessTokenKey"
#define g_kFacebookExpirationDate   @"FBExpirationDateKey"
//AppID Missing 
#define msgFBAppIDMissing @"Missing AppID"

//Session Invalidated
#define msgFBSessionInvalidateTitle @"Auth Exception"
#define msgFBSessionInvalidateMessage @"Your session has expired."
在.pch文件中导入以下文件:

#import "FacebookGlobal.h"
#import "FacebookKey.h"
#import "FacebookMessage.h"

#import "FacebookHelper.h"
现在,您可以使用了

在视图控制器中,添加以下代理:

<FBApiCallDelegate>
- (void)viewWillAppear:(BOOL)animated {
/*
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
[fbHelper logoutFromFacebook];
*/


//Get User Info
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
fbHelper.apiCallDelegate = self;
[fbHelper getUserInfo];


/*
//Get User's Friend List
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
fbHelper.apiCallDelegate = self;
[fbHelper getUserFriends];
*/

/*
//Post Message to FB Wall
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
fbHelper.apiCallDelegate = self;
fbHelper.strMessage = g_kPostMessage;
[fbHelper postMessageToWall];
*/

/*
//Post Picture to FB Wall
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
fbHelper.apiCallDelegate = self;
fbHelper.strMessage = g_kPostMessage;
fbHelper.image = [UIImage imageNamed:@"postPicture.jpg"];
[fbHelper postPictureToWall];
*/

/*
//Share Link on FB Wall
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
fbHelper.apiCallDelegate = self;
fbHelper.strUrl = g_kPostUrl;
fbHelper.strMessage = g_kPostMessage;
[fbHelper shareLinkOnWall];
*/

/*
//Post All to FB Wall
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
fbHelper.apiCallDelegate = self;
fbHelper.strMessage = g_kPostMessage;
fbHelper.strUrlTitle = g_kPostUrlTitle;
fbHelper.strUrl = g_kPostUrl;
fbHelper.strCaption = g_kPostCaption;
fbHelper.strPictureUrl = g_kPostPictureUrl;
[fbHelper postAllToWall];
 */

/*
//Post Message to Friend Wall
FacebookHelper *fbHelper = [FacebookHelper sharedInstance];
fbHelper.apiCallDelegate = self;
fbHelper.strMessage = g_kPostMessage;
[fbHelper postMessageToFriendWall];
*/
}



#pragma mark -
#pragma mark Get User Info Delegate
-(void)finishUserInfoResponse:(id)result{
NSLog(@"UserInfo response successed!");
NSLog(@"%@", result);

}
-(void)failedUserInfoResponse:(NSError *)error{
NSLog(@"UserInfo response failed!");
}

#pragma mark -
#pragma mark Get User's Friend List
-(void)finishUserFriendResponse:(id)result{
NSLog(@"User FriendList response successed!");
NSLog(@"%@", result);
}
-(void)failedUserFriendResponse:(NSError *)error{
NSLog(@"User FriendList response failed!");
}

#pragma mark -
#pragma mark Post Message to FB Wall Delegate
-(void)finishPostMessageResponse:(id)result{
NSLog(@"Post message successed!");
NSLog(@"%@", result);
}
-(void)failedPostMessageResponse:(NSError *)error{
NSLog(@"Post message failed!");
}

#pragma mark -
#pragma mark Post Picture to FB Wall
-(void)finishPostPictureResponse:(id)result{
NSLog(@"Post picture successed!");
NSLog(@"%@", result);
}
-(void)failedPostPictureResponse:(NSError *)error{
NSLog(@"Post picture failed!");
}

#pragma mark -
#pragma mark Share Link on FB Wall
-(void)finishShareLinkResponse:(id)result{
NSLog(@"Share link successed!");
NSLog(@"%@", result);
}
-(void)failedShareLinkResponse:(NSError *)error{
NSLog(@"Share link failed!");
}

#pragma mark -
#pragma mark Post All - Message, Link, Caption, PhotoUrl
-(void)finishPostAllResponse:(id)result{
NSLog(@"Post all successed!");
NSLog(@"%@", result);
}
-(void)failedPostAllResponse:(NSError *)error{
NSLog(@"Post all failed!");
}

#pragma mark -
#pragma mark Post Message to Friend Wall Delegate
-(void)finishPostMsgFriendWallResponse:(id)result{
NSLog(@"Post message to friend wall successed!");
NSLog(@"%@", result);
}
-(void)failedPostMsgFriendWallResponse:(NSError *)error{
NSLog(@"Post message to friend wall failed!");
}
快乐编码:)

享受