ios-library
ios-library copied to clipboard
Usage in swift raises exception
I am trying to connect to a local owncloud instance with swift using this library. The app example you are providing is working fine with my local setup. I have successfully imported the libownCloudiOS.a library and header files as per the Readme instructions.
Now when I try to invoke the readFolder method, an exception is raised:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString encodeString:]: unrecognized selector sent to instance
The function provoking this error looks like:
let com = OCCommunication()
com.setCredentialsWithUser("admin", andPassword: "password")
var path = "http://cloud.local.dev/remote.php/webdav/"
path = path.stringByRemovingPercentEncoding!
print(path)
com.readFolder(path, withUserSessionToken: UtilsFramework.getUserSessionToken(), onCommunication: com, successRequest: { (response: NSHTTPURLResponse!, items: [AnyObject]!, token: String!, redirectServer:String!) in
print("success")
}, failureRequest: { (response: NSHTTPURLResponse!, error: NSError!, token: String!, redirectServer: String!) in
print("failure")
})
}
Am I missing some ~~arcane~~ "this does not work in swift/objc that way" gotchas?
Exception rised here.
- (void) readFolder: (NSString *) path withUserSessionToken:(NSString *)token
onCommunication:(OCCommunication *)sharedOCCommunication
successRequest:(void(^)(NSHTTPURLResponse *response, NSArray *items, NSString *redirectedServer, NSString *token)) successRequest
failureRequest:(void(^)(NSHTTPURLResponse *response, NSError *error, NSString *token, NSString *redirectedServer)) failureRequest{
if (!token){
token = @"no token";
}
path = [path encodeString:NSUTF8StringEncoding]; // HERE...
The method is defined in NSString+Encode.h and NSString+Encode.m , you might add these files to your project.
Has there been a solution or fix for this yet? I'm also trying to integrate this library into a Swift project but running into the exact same issue. Exposing NSString+Encode.h in the bridging header didn't make a difference, unfortunately. Thanks!
Did you set the -ObjC flag as advised in the installation notes?
The installation notes advise -Obj-C. The problem disappears once -Obj-C is replaced by -ObjC. Could you fix the installation notes?