Skip to content

Releases: gershnik/objc-helpers

3.0

18 Jan 05:56
Compare
Choose a tag to compare

Changed

  • BlockUtil.h: makeBlock functionality is completely reworked. New functionality:
    • Wrap any callables including mutable lambdas or any other callable that provides non-const operator().
    • If the callable is movable it will be moved into the block, not copied. It will also be moved if the block is "copied to heap"
      by ObjectiveC runtime or Block_copy in plain C++.
    • It is possible to use move-only callables.
    • All of this is accomplished with NO dynamic memory allocation
  • NSStringCharAccess now conforms completely to std::ranges::random_access_range
  • BoxUtil.h: boxing now detects comparability and enables compare: not just via presence of operator <=> but also when only operators <, ==, <= etc. are present.
  • BoxUtil.h: generated ObjectiveC box classes now have names unique to each shared library/main executable, preventing collisions if multiple modules use boxing.

Added

  • NSStringUtil.h: added makeNSString, makeCFString and makeStdString conversion functions between C++ character ranges and ObjectiveC strings.

See README for more details

2.3

09 Jan 08:06
Compare
Choose a tag to compare
2.3

Added

  • BoxUtil.h header for generic boxing and unboxing of any C++ object to/from an ObjectiveC one
  • XCTestUtil.h header for XCTest macros to compare C++ objects while producing useful descriptions in case of failure.

See README for more details

2.2

23 Dec 01:58
Compare
Choose a tag to compare
2.2

Changed

  • Performance optimizations for CoDispatch

2.1

17 Dec 06:23
Compare
Choose a tag to compare
2.1

Added

  • all variants of resumeOn and resumeOnMainQueue now accept when argument to request that the resumption happens no earlier than the specified time. When used with co_await resumeOn(currentQueue, when) this allows the caller to sleep asynchronously without blocking its queue.

2.0

13 Dec 12:25
Compare
Choose a tag to compare
2.0

Added

  • CoDispatch.h: A collection of classes and functions that allows you to write asynchronous C++ coroutines and generators that execute on GCD dispatch queues. Detailed guide is available here
  • Ability to subtract NSStringCharAccess::iterators
  • Ability to get starting index of NSStringCharAccess::iterator inside its string
  • Extensive unit tests for all functionality

Fixed

  • Crash in NSNumberEqual when second argument is nullptr
  • NSStringCharAccess::empty() returning opposite result
  • Compiler warnings in pedantic mode