Skip to main content
API Reference SwiftyNsdk NsdkUtils

withNsdkStrings

Safely manages multiple C string conversions with automatic memory cleanup....

Declaration

static func withNsdkStrings<Result>(_ body: ((String?) -> ARDK_String) throws -> Result) rethrows -> Result

Summary

Safely manages multiple C string conversions with automatic memory cleanup.
This function provides a convenient way to work with multiple C strings in a single scope
while ensuring proper memory management. It automatically allocates memory for C strings
and cleans up all allocated memory when the scope exits.
Use this function when you need to have multiple C strings in a single scope and
the number of nested scopes gets too messy. Otherwise, prefer Swift's built-in
String.withCString for simpler cases.
- Parameter body: A closure that receives a function for creating NSDK strings
- Returns: The result of executing the body closure
- Throws: Any error thrown by the body closure
## Example
```swift
let result = NsdkUtils.withNsdkStrings { createString in
let string1 = createString("Hello")
let string2 = createString("World")
let string3 = createString(nil) // Creates empty string



// Use the NSDK strings with C API calls
return someCFunction(string1, string2, string3)
}
// Memory is automatically cleaned up here
```
## Memory Management
The function automatically:
- Allocates memory for each string using strdup
- Tracks all allocated pointers
- Frees all memory when the scope exits (even if an error is thrown)
- Handles nil and empty strings gracefully


ON THIS PAGE