Skip to content

Latest commit

 

History

History
68 lines (49 loc) · 3.43 KB

MulleObjCSingleton.md

File metadata and controls

68 lines (49 loc) · 3.43 KB

MulleObjCSingleton

Protocol for implementing singleton objects in mulle-objc. Provides thread-safe singleton initialization and access.

Required Methods

Instance Access

Initialization

Helper Functions

Usage Example

@interface MySingleton : NSObject <MulleObjCSingleton>
@end

@implementation MySingleton

+ (instancetype) sharedInstance
{
   return( MulleObjCSingletonCreate( self));
}

+ (void) initializeSingleton
{
   // Initialize singleton state here
}

@end

// Usage
id instance = [MySingleton sharedInstance];

Important Notes

  1. Thread Safety

    • Thread-safe initialization
    • Safe instance access
    • Handle concurrent calls
    • Consider TAO rules
  2. Initialization

    • One-time setup
    • Handle dependencies
    • Clean up properly
    • Check state
  3. Best Practices

    • Lazy initialization
    • Handle errors
    • Document usage
    • Test thoroughly
  4. Performance

    • Cache instance
    • Minimize locks
    • Consider inlining
    • Handle contention

Note: This protocol provides thread-safe singleton implementation. The singleton instance is created lazily on first access and guaranteed to be initialized only once.