ODStringify 1.3.0

ODStringify 1.3.0

TestsTested
LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Oct 2022

Maintained by Alexey Nazaroff.



ODStringify

Build Status codecov.io CocoaPods Compatible Carthage compatible Platform Twitter

Usage

With ODStringify you can make strings from classes, properties, defines and functions using one function. Safely. And all things will be done compile time. No more runtime overhead and calls like NSStringFromClass (despite of for this function it was very small).

First of all you can make strings from defined value. It's crazy. For example:

#define MAX_NUMBER_OF_SOMETHING 10
#define DEFAULT_HI_STRING @"hello"

NSLog(@"Hi string:%@", ODStringify(DEFAULT_HI_STRING)); // > @"hello" (@"@\"hello\"")
NSLog(@"Max number:%@", ODStringify(MAX_NUMBER_OF_SOMETHING)); // > 10 (@"10")

ODStringify

ODStringifyClass

Class's name string with compile time type check.

NSLog(@"Valid class:%@", ODStringifyClass(AppDelegate)); // AppDelegate
NSLog(@"Invalid class:%@", ODStringifyClass(App_Delegate)); // Error

ODStringifyProtocol

Class's name string with compile time type check.

NSLog(@"Valid protocol:%@", ODStringifyProtocol(NSCopying)); // AppDelegate
NSLog(@"Invalid protocol:%@", ODStringifyProtocol(NSCopiing)); // Error

ODStringify

ODStringifyProperty

Pretty same thing for properties. NB. You need to be inside of class implementation (and have self)

// AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSLog(@"Valid property:%@", ODStringifyProperty(window)); // window
    NSLog(@"Invalid property:%@", ODStringifyProperty(window_)); // Error
    return YES;
}

ODConcat

Allows us to concat any things. For example how it works in ODWeakify pod – we concat name of variable with weak suffix to get new another one.

#define od_weakify(obj)  __weak __typeof(obj) ODConcat(obj, _weak_)

ODCurrentFileAndLine

Just current file and line as NSString

ODCompilerIgnorePush & ODCompilerPop

Two defines for simplifying compiler pragma pushes. Actually, maybe, will be better to move it in another pod :-)

ODCompilerIgnorePush(-Wgnu).
// some code
ODCompilerIgnorePop.

Installation

ODStringify supports multiple methods for installing the library in a project.

Installation with CocoaPods

CocoaPods is a dependency manager for Objective-C and Swift, which automates and simplifies the process of using 3rd-party libraries like ODStringify in your projects. You can install it with the following command:

$ gem install cocoapods

Podfile

To integrate ODStringify into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '12.0'

target 'TargetName' do
pod 'ODStringify'
end

Then, run the following command:

$ pod install

Installation with Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate ODStringify into your Xcode project using Carthage, specify it in your Cartfile:

github "nzrsky/ODStringify" ~> 1.1

Run carthage to build the framework and drag the built ODStringify.framework into your Xcode project.

Author

Alexey Nazarov, [email protected]

License

ODStringify is available under the MIT license. See the LICENSE file for more info.