Fixes issue #47, updates code to latest syntax, build for iOS 11
diff --git a/OpenWhisk.xcodeproj/project.pbxproj b/OpenWhisk.xcodeproj/project.pbxproj
index f7747aa..e956ac2 100644
--- a/OpenWhisk.xcodeproj/project.pbxproj
+++ b/OpenWhisk.xcodeproj/project.pbxproj
@@ -205,16 +205,16 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0720;
- LastUpgradeCheck = 0800;
+ LastUpgradeCheck = 0930;
ORGANIZATIONNAME = IBM;
TargetAttributes = {
D6E3E6351C72592300843E16 = {
CreatedOnToolsVersion = 7.2.1;
- LastSwiftMigration = 0800;
+ LastSwiftMigration = 0930;
};
D6E3E63F1C72592300843E16 = {
CreatedOnToolsVersion = 7.2.1;
- LastSwiftMigration = 0800;
+ LastSwiftMigration = 0930;
};
D6F56ADE1C76471B00F047B6 = {
CreatedOnToolsVersion = 7.2.1;
@@ -317,14 +317,22 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -348,7 +356,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -367,14 +375,22 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -392,7 +408,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
@@ -414,13 +430,14 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = OpenWhisk/Info_iOS.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.openwhisk.OpenWhisk;
PRODUCT_NAME = OpenWhisk;
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 3.0;
+ SWIFT_SWIFT3_OBJC_INFERENCE = Default;
+ SWIFT_VERSION = 4.0;
};
name = Debug;
};
@@ -435,12 +452,13 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = OpenWhisk/Info_iOS.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.openwhisk.OpenWhisk;
PRODUCT_NAME = OpenWhisk;
SKIP_INSTALL = YES;
- SWIFT_VERSION = 3.0;
+ SWIFT_SWIFT3_OBJC_INFERENCE = Default;
+ SWIFT_VERSION = 4.0;
};
name = Release;
};
@@ -451,7 +469,8 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.ibm.mobile.openwhisk.OpenWhiskTests;
PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 3.0;
+ SWIFT_SWIFT3_OBJC_INFERENCE = Default;
+ SWIFT_VERSION = 4.0;
};
name = Debug;
};
@@ -462,7 +481,8 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.ibm.mobile.openwhisk.OpenWhiskTests;
PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 3.0;
+ SWIFT_SWIFT3_OBJC_INFERENCE = Default;
+ SWIFT_VERSION = 4.0;
};
name = Release;
};
@@ -484,7 +504,7 @@
SKIP_INSTALL = YES;
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = 4;
- WATCHOS_DEPLOYMENT_TARGET = 3.0;
+ WATCHOS_DEPLOYMENT_TARGET = 4.0;
};
name = Debug;
};
@@ -506,7 +526,7 @@
SKIP_INSTALL = YES;
SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = 4;
- WATCHOS_DEPLOYMENT_TARGET = 3.0;
+ WATCHOS_DEPLOYMENT_TARGET = 4.0;
};
name = Release;
};
diff --git a/OpenWhisk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/OpenWhisk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/OpenWhisk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IDEDidComputeMac32BitWarning</key>
+ <true/>
+</dict>
+</plist>
diff --git a/OpenWhisk.xcodeproj/xcshareddata/xcschemes/OpenWhisk Tests.xcscheme b/OpenWhisk.xcodeproj/xcshareddata/xcschemes/OpenWhisk Tests.xcscheme
index 8d780eb..f88496c 100644
--- a/OpenWhisk.xcodeproj/xcshareddata/xcschemes/OpenWhisk Tests.xcscheme
+++ b/OpenWhisk.xcodeproj/xcshareddata/xcschemes/OpenWhisk Tests.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0800"
+ LastUpgradeVersion = "0930"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
diff --git a/OpenWhisk.xcodeproj/xcshareddata/xcschemes/OpenWhisk iOS.xcscheme b/OpenWhisk.xcodeproj/xcshareddata/xcschemes/OpenWhisk iOS.xcscheme
index a032da2..ed082fb 100644
--- a/OpenWhisk.xcodeproj/xcshareddata/xcschemes/OpenWhisk iOS.xcscheme
+++ b/OpenWhisk.xcodeproj/xcshareddata/xcschemes/OpenWhisk iOS.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0800"
+ LastUpgradeVersion = "0930"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
diff --git a/OpenWhisk.xcodeproj/xcshareddata/xcschemes/OpenWhisk watchOS.xcscheme b/OpenWhisk.xcodeproj/xcshareddata/xcschemes/OpenWhisk watchOS.xcscheme
index a75294a..391f125 100644
--- a/OpenWhisk.xcodeproj/xcshareddata/xcschemes/OpenWhisk watchOS.xcscheme
+++ b/OpenWhisk.xcodeproj/xcshareddata/xcschemes/OpenWhisk watchOS.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0800"
+ LastUpgradeVersion = "0930"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
diff --git a/OpenWhisk/OpenWhiskButton.swift b/OpenWhisk/OpenWhiskButton.swift
index 8de1778..98436e5 100644
--- a/OpenWhisk/OpenWhiskButton.swift
+++ b/OpenWhisk/OpenWhiskButton.swift
@@ -60,7 +60,7 @@
public var actionButtonCallback: ((Dictionary<String,AnyObject>?, WhiskError?) -> Void)?
- func buttonPressed() {
+ @objc func buttonPressed() {
invokeAction(parameters: nil, actionCallback: actionButtonCallback)
}
diff --git a/OpenWhisk/OpenWhiskSDK.swift b/OpenWhisk/OpenWhiskSDK.swift
index 4ce7e4b..58741b1 100644
--- a/OpenWhisk/OpenWhiskSDK.swift
+++ b/OpenWhisk/OpenWhiskSDK.swift
@@ -88,7 +88,7 @@
set {
if let url = newValue {
- let c = url.characters.last
+ let c = url.last
let separater = c == "/" ? "" : "/"
@@ -214,12 +214,12 @@
var namespaceStr = namespace
- if namespace.characters.count == 0 {
+ if namespace.count == 0 {
namespaceStr = "_"
}
if let package = package {
- if package.characters.count == 0 {
+ if package.count == 0 {
syncName = syncName + namespaceStr+"/"+typeStr+"/"+name
} else {
syncName = syncName + namespaceStr+"/"+typeStr+"/"+package+"/"+name
@@ -430,11 +430,11 @@
var name = ""
var doesSpecifyNamespace = false
- if qName.characters.first == "/" {
+ if qName.first == "/" {
doesSpecifyNamespace = true
}
- let pathParts = qName.characters.split { $0 == "/" }.map(String.init)
+ let pathParts = qName.split { $0 == "/" }.map(String.init)
if doesSpecifyNamespace == true {
if pathParts.count == 2 {
diff --git a/mobile/iOS/starterapp/OpenWhiskStarterApp.xcodeproj/project.pbxproj b/mobile/iOS/starterapp/OpenWhiskStarterApp.xcodeproj/project.pbxproj
index e49a93c..466fc87 100644
--- a/mobile/iOS/starterapp/OpenWhiskStarterApp.xcodeproj/project.pbxproj
+++ b/mobile/iOS/starterapp/OpenWhiskStarterApp.xcodeproj/project.pbxproj
@@ -147,13 +147,13 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0720;
- LastUpgradeCheck = 0800;
+ LastUpgradeCheck = 0930;
ORGANIZATIONNAME = IBM;
TargetAttributes = {
D65844411C727BBC001581F3 = {
CreatedOnToolsVersion = 7.2.1;
DevelopmentTeam = 76CMF53Q35;
- LastSwiftMigration = 0800;
+ LastSwiftMigration = 0930;
};
};
};
@@ -195,13 +195,16 @@
files = (
);
inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-OpenWhiskStarterApp-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
17B39CA85AFF9440A7860D2E /* [CP] Embed Pods Frameworks */ = {
@@ -210,9 +213,12 @@
files = (
);
inputPaths = (
+ "${SRCROOT}/Pods/Target Support Files/Pods-OpenWhiskStarterApp/Pods-OpenWhiskStarterApp-frameworks.sh",
+ "${BUILT_PRODUCTS_DIR}/OpenWhisk/OpenWhisk.framework",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenWhisk.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
@@ -281,14 +287,22 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -311,7 +325,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -328,14 +342,22 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -352,7 +374,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
@@ -373,10 +395,12 @@
"$(PROJECT_DIR)",
);
INFOPLIST_FILE = OpenWhiskStarterApp/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.ibm.mobile.openwhisk.OpenWhiskStarterApp;
PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 3.0;
+ SWIFT_SWIFT3_OBJC_INFERENCE = Default;
+ SWIFT_VERSION = 4.0;
};
name = Debug;
};
@@ -392,10 +416,12 @@
"$(PROJECT_DIR)",
);
INFOPLIST_FILE = OpenWhiskStarterApp/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.ibm.mobile.openwhisk.OpenWhiskStarterApp;
PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 3.0;
+ SWIFT_SWIFT3_OBJC_INFERENCE = Default;
+ SWIFT_VERSION = 4.0;
};
name = Release;
};
diff --git a/mobile/iOS/starterapp/OpenWhiskStarterApp.xcodeproj/xcshareddata/xcschemes/OpenWhiskStarterApp.xcscheme b/mobile/iOS/starterapp/OpenWhiskStarterApp.xcodeproj/xcshareddata/xcschemes/OpenWhiskStarterApp.xcscheme
index b5ff414..ce2a76b 100644
--- a/mobile/iOS/starterapp/OpenWhiskStarterApp.xcodeproj/xcshareddata/xcschemes/OpenWhiskStarterApp.xcscheme
+++ b/mobile/iOS/starterapp/OpenWhiskStarterApp.xcodeproj/xcshareddata/xcschemes/OpenWhiskStarterApp.xcscheme
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0800"
+ LastUpgradeVersion = "0930"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
diff --git a/mobile/iOS/starterapp/OpenWhiskStarterApp/ResultSetTableController.swift b/mobile/iOS/starterapp/OpenWhiskStarterApp/ResultSetTableController.swift
index ea47f5c..fae8f53 100644
--- a/mobile/iOS/starterapp/OpenWhiskStarterApp/ResultSetTableController.swift
+++ b/mobile/iOS/starterapp/OpenWhiskStarterApp/ResultSetTableController.swift
@@ -66,7 +66,7 @@
options: JSONSerialization.WritingOptions(rawValue: 0))
let theJSONText = NSString(data: theJSONData,
encoding: String.Encoding.ascii.rawValue)
- values.append(theJSONText as! String)
+ values.append(theJSONText! as String)
isComplex.append(true)
} catch {
print("Error converting value to JSON")
diff --git a/mobile/iOS/starterapp/OpenWhiskStarterApp/ViewController.swift b/mobile/iOS/starterapp/OpenWhiskStarterApp/ViewController.swift
index 82205b4..bf289c2 100644
--- a/mobile/iOS/starterapp/OpenWhiskStarterApp/ViewController.swift
+++ b/mobile/iOS/starterapp/OpenWhiskStarterApp/ViewController.swift
@@ -84,7 +84,7 @@
} else if let reply = reply {
let str = "\(reply)"
print("reply: \(str)")
- self.statusLabel.text = "Action \(self.MyNamespace)/\(self.MyWhiskAction) returned \(str.characters.count) characters"
+ self.statusLabel.text = "Action \(self.MyNamespace)/\(self.MyWhiskAction) returned \(str.count) characters"
if let result = reply["result"] as? [String:AnyObject] {
self.displayOutput(reply: result)
}