diff --git a/docs/guide/extend/extend-ios-with-swift.md b/docs/guide/extend/extend-ios-with-swift.md
index 1671a40..fbae869 100644
--- a/docs/guide/extend/extend-ios-with-swift.md
+++ b/docs/guide/extend/extend-ios-with-swift.md
@@ -16,14 +16,13 @@
 - implementation in `WXSwiftTestModule.h/m`
   - WXSwiftTestModule.h
     
-    ```
-        #import <Foundation/Foundation.h>
-        #import <WeexSDK/WeexSDK.h>
+    ```swift
+    #import <Foundation/Foundation.h>
+    #import <WeexSDK/WeexSDK.h>
     
-        @interface WXSwiftTestModule : NSObject <WXModuleProtocol>
+    @interface WXSwiftTestModule : NSObject <WXModuleProtocol>
     
-        @end
-    
+    @end
     ```
   - WXSwiftTestModule.m
     
@@ -34,41 +33,45 @@
     weex/ios/playground/DerivedData/WeexDemo/Build/Intermediates/WeexDemo.build/Debug-iphonesimulator/WeexDemo.build/DerivedSources/WeexDemo-Swift.h
     ```
     export method define in swift file.
-    ```
-        #import "WXSwiftTestModule.h"
-        #import "WeexDemo-Swift.h" // you need to import the header to make Objective-C code recognize the method defined in swift file.
+    ```swift
+    #import "WXSwiftTestModule.h"
+    #import "WeexDemo-Swift.h" // you need to import the header to make Objective-C code recognize the method defined in swift file.
     
-        @implementation WXSwiftTestModule
-        #pragma clang diagnostic push //forbid unknow selector warrning
-        #pragma clang diagnostic ignored "-Wundeclared-selector"
+    @implementation WXSwiftTestModule
+    #pragma clang diagnostic push //forbid unknow selector warrning
+    #pragma clang diagnostic ignored "-Wundeclared-selector"
     
-        WX_EXPORT_METHOD(@selector(printSome:callback:)) //method name in Swift, you can get the final method name in `WeexDemo-Swift.h` as the convert of Xcode.
+    WX_EXPORT_METHOD(@selector(printSome:callback:)) //method name in Swift, you can get the final method name in `WeexDemo-Swift.h` as the convert of Xcode.
 
-        #pragma clang diagnostic pop
+    #pragma clang diagnostic pop
     
-        @end
-    
+    @end
     ```
 - in Swift
   make an extension for Objective-C class `WXSwiftTestModule`, add a method, and then export it in Objective-C, then we can use it in javaScript.
 
   - WXSwiftTestModule.swift
     
-    ```
-        import Foundation
-        public extension WXSwiftTestModule {
-           public func printSome(someThing:String, callback:WXModuleCallback) {
-               print(someThing)
-               callback(someThing)
-           }
-        }
+    ```swift
+    import Foundation
+    public extension WXSwiftTestModule {
+      @objc(printSome:callback:)
+      public func printSome(someThing:String, callback:WXModuleCallback) {
+        print(someThing)
+        callback(someThing)
+      }
+    }
     ```
     
-  we need to expose `WXSwiftTestModule` `WXModuleCallback` in `WeexDemo-Bridging-Header` as our `Objective-C` need to access them
+  we need to expose `WXSwiftTestModule` `WXModuleCallback` in `WeexDemo-Bridging-Header` as our `Objective-C` need to access them.
+
+  Attention: Please add the `@objc` attribute to the method in the Swift file to avoid the error for the method cannot be found.
+
+
 
   - WeexDemo-Bridging-Header.h
     
-    ```
+    ```swift
     //
     //  Use this file to import your target's public headers that you would like to expose to Swift.
     //
@@ -81,26 +84,25 @@
   ### module usage
   - register module to WeexSDK
 
-    ```
+    ```Objective-C
     [WXSDKEngine registerModule:@"swifter" withClass:[WXSwiftTestModule class]];
     
     ```
   - front-end usage
 
-    ```
-      <template>
-          <text>Swift Module</text>
-      </template>
+    ```html
+    <template>
+      <text>Swift Module</text>
+    </template>
     
-      <script>
-        module.exports = {
-          ready: function() {
-            var swifter = weex.require('swifter');
-            swifter.printSome("https://www.taobao.com",function(param){
-              nativeLog(param);
-            });
-          }
-    
-        };
-      </script>
+    <script>
+      module.exports = {
+        ready: function() {
+          var swifter = weex.require('swifter');
+          swifter.printSome("https://www.taobao.com",function(param){
+            nativeLog(param);
+          });
+        }
+      };
+    </script>
     ```
diff --git a/docs/zh/guide/extend/extend-ios-with-swift.md b/docs/zh/guide/extend/extend-ios-with-swift.md
index f4ebeb4..8e63c10 100644
--- a/docs/zh/guide/extend/extend-ios-with-swift.md
+++ b/docs/zh/guide/extend/extend-ios-with-swift.md
@@ -13,14 +13,13 @@
 - `WXSwiftTestModule.h/m`中实现
   - WXSwiftTestModule.h 中
     
-    ```
-        #import <Foundation/Foundation.h>
-        #import <WeexSDK/WeexSDK.h>
+    ```swift
+    #import <Foundation/Foundation.h>
+    #import <WeexSDK/WeexSDK.h>
     
-        @interface WXSwiftTestModule : NSObject <WXModuleProtocol>
+    @interface WXSwiftTestModule : NSObject <WXModuleProtocol>
     
-        @end
-    
+    @end
     ```
   - WXSwiftTestModule.m 中
     
@@ -32,36 +31,39 @@
     
     路径具体需要根据自己工程而定
     
-    ```
-        #import "WXSwiftTestModule.h"
-        #import "WeexDemo-Swift.h" // Swift类和方法 被 `Objective-C` 识别需要导入
+    ```swift
+    #import "WXSwiftTestModule.h"
+    #import "WeexDemo-Swift.h" // Swift类和方法 被 `Objective-C` 识别需要导入
     
-        @implementation WXSwiftTestModule
-        #pragma clang diagnostic push //关闭unknow selector的warrning
-        #pragma clang diagnostic ignored "-Wundeclared-selector"
+    @implementation WXSwiftTestModule
+    #pragma clang diagnostic push //关闭unknow selector的warrning
+    #pragma clang diagnostic ignored "-Wundeclared-selector"
     
-        WX_EXPORT_METHOD(@selector(printSome:callback:)) //Swift 中定义的方法，XCode 转换成的最终的方法名称，在`WeexDemo-Swift.h`里面查看
+    WX_EXPORT_METHOD(@selector(printSome:callback:)) //Swift 中定义的方法，XCode 转换成的最终的方法名称，在`WeexDemo-Swift.h`里面查看
     
-        #pragma clang diagnostic pop
+    #pragma clang diagnostic pop
     
-        @end
-    
+    @end
     ```
 - Swift 中实现 
   扩展 OC 的类 `WXSwiftTestModule`,增加了一个方法，这个方法就是我们要暴露出来，在 js 中可以调到的
   - WXSwiftTestModule.swift
     
-    ```
-        import Foundation
-        public extension WXSwiftTestModule {
-           public func printSome(someThing:String, callback:WXModuleCallback) {
-               print(someThing)
-               callback(someThing)
-           }
-        }
+    ```swift
+    import Foundation
+    public extension WXSwiftTestModule {
+      @objc(printSome:callback:)
+      public func printSome(someThing:String, callback:WXModuleCallback) {
+        print(someThing)
+        callback(someThing)
+      }
+    }
     ```
     
-    `WXSwiftTestModule` 和`WXModuleCallback` 因为是 OC 的，需要在 `WeexDemo-Bridging-Header` 中暴露
+    `WXSwiftTestModule` 和`WXModuleCallback` 因为是 OC 的，需要在 `WeexDemo-Bridging-Header` 中暴露。
+
+    注意：请在 Swift 文件中为方法添加 `@objc` 修饰符，避免找不到方法的报错。
+
   - WeexDemo-Bridging-Header.h中
     
     ```
@@ -77,26 +79,25 @@
   ### module 使用
   - 注册 module 
     
-    ```
+    ```Objective-C
     [WXSDKEngine registerModule:@"swifter" withClass:[WXSwiftTestModule class]];
     
     ```
   - 前端脚本中用法
     
-    ```
-      <template>
-          <text>Swift Module</text>
-      </template>
+    ```html
+    <template>
+      <text>Swift Module</text>
+    </template>
     
-      <script>
-        module.exports = {
-          ready: function() {
-            var swifter = weex.require('swifter');
-            swifter.printSome("https://www.taobao.com",function(param){
-              nativeLog(param);
-            });
-          }
-    
-        };
-      </script>
+    <script>
+      module.exports = {
+        ready: function() {
+          var swifter = weex.require('swifter');
+          swifter.printSome("https://www.taobao.com",function(param){
+            nativeLog(param);
+          });
+        }
+      };
+    </script>
     ```
\ No newline at end of file
