Repository: incubator-weex Updated Branches: refs/heads/master 784903132 -> 36a3f268b
[WEEX-200][iOS] deprecate wxcallback and wxmodulecallback As iOS developers knows, we cannot distinguish the block by its params count, but it has been a time we use the default value of block parameter, I find out that the default value could be dirty data. here is the callback type definition. typedef void (^WXCallback)(_Nonnull id result) typedef void (^WXKeepAliveCallback)(_Nonnull id result, BOOL keepAlive); when the method called, weexSDK will set the callback according to the @encode result, but these two type's encode result are all "?", see more encode result from Apple Documents https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html Bug:200 close #1000 Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/36a3f268 Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/36a3f268 Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/36a3f268 Branch: refs/heads/master Commit: 36a3f268b9f67d9505e6cad454934a2670e2b42c Parents: 7849031 Author: acton393 <zhangxing610...@gmail.com> Authored: Tue Jan 23 16:51:29 2018 +0800 Committer: acton393 <zhangxing610...@gmail.com> Committed: Fri Feb 9 19:27:43 2018 +0800 ---------------------------------------------------------------------- ios/playground/WeexDemo/extend/module/WXEventModule.m | 4 ++-- ios/sdk/WeexSDK/Sources/Model/WXComponent.h | 2 +- ios/sdk/WeexSDK/Sources/Protocol/WXModuleProtocol.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/36a3f268/ios/playground/WeexDemo/extend/module/WXEventModule.m ---------------------------------------------------------------------- diff --git a/ios/playground/WeexDemo/extend/module/WXEventModule.m b/ios/playground/WeexDemo/extend/module/WXEventModule.m index 59e9158..1cebd62 100644 --- a/ios/playground/WeexDemo/extend/module/WXEventModule.m +++ b/ios/playground/WeexDemo/extend/module/WXEventModule.m @@ -55,12 +55,12 @@ WX_EXPORT_METHOD(@selector(fireNativeGlobalEvent:callback:)) a test method for macaca case, you can fire globalEvent when download finishãdevice shaked and so on. @param event event name */ -- (void)fireNativeGlobalEvent:(NSString *)event callback:(WXModuleCallback)callback +- (void)fireNativeGlobalEvent:(NSString *)event callback:(WXKeepAliveCallback)callback { [weexInstance fireGlobalEvent:event params:@{@"eventParam":@"eventValue"}]; if (callback) { NSDictionary * result = @{@"ok": @true}; - callback(result); + callback(result,false); } } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/36a3f268/ios/sdk/WeexSDK/Sources/Model/WXComponent.h ---------------------------------------------------------------------- diff --git a/ios/sdk/WeexSDK/Sources/Model/WXComponent.h b/ios/sdk/WeexSDK/Sources/Model/WXComponent.h index ac1b13a..92f1e34 100644 --- a/ios/sdk/WeexSDK/Sources/Model/WXComponent.h +++ b/ios/sdk/WeexSDK/Sources/Model/WXComponent.h @@ -32,7 +32,7 @@ typedef enum : NSUInteger { * @abstract the component callback , result can be string or dictionary. * @discussion callback data to js, the id of callback function will be removed to save memory. */ -typedef void (^WXCallback)(_Nonnull id result); +typedef void (^WXCallback)(_Nonnull id result) DEPRECATED_MSG_ATTRIBUTE("use WXKeepAliveCallback, you can specify keep the callback or not, if keeped, it can be called multi times, or it will be removed after called."); /** * @abstract the component callback , result can be string or dictionary. http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/36a3f268/ios/sdk/WeexSDK/Sources/Protocol/WXModuleProtocol.h ---------------------------------------------------------------------- diff --git a/ios/sdk/WeexSDK/Sources/Protocol/WXModuleProtocol.h b/ios/sdk/WeexSDK/Sources/Protocol/WXModuleProtocol.h index a6bab03..6ea275c 100644 --- a/ios/sdk/WeexSDK/Sources/Protocol/WXModuleProtocol.h +++ b/ios/sdk/WeexSDK/Sources/Protocol/WXModuleProtocol.h @@ -34,7 +34,7 @@ * @abstract the module callback , result can be string or dictionary. * @discussion callback data to js, the id of callback function will be removed to save memory. */ -typedef void (^WXModuleCallback)(id result); +typedef void (^WXModuleCallback)(id result) DEPRECATED_MSG_ATTRIBUTE("use WXModuleKeepAliveCallback, you can specify keep the callback or not, if keeped, it can be called multi times, or it will be removed after called."); /** * @abstract the module callback , result can be string or dictionary.