johncosch / TIPBadgeManager

A simple module to create and manage multiple badges
MIT License
20 stars 13 forks source link

Use TIPBadgeManager with Objective-C #10

Open colasbd opened 8 years ago

colasbd commented 8 years ago

I have been able to install TIPBadgeManager in a Objective-C project but I am not able to use it.

In my class, I do #import <TIPBadgeManager/TIPBadgeManager-Swift.h>

But the related file does not define a class for TIPBadgeManager...

Here is the file

// Generated by Apple Swift version 2.2 (swiftlang-703.0.18.8 clang-703.0.31)
#pragma clang diagnostic push

#if defined(__has_include) && __has_include(<swift/objc-prologue.h>)
# include <swift/objc-prologue.h>
#endif

#pragma clang diagnostic ignored "-Wauto-import"
#include <objc/NSObject.h>
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>

#if !defined(SWIFT_TYPEDEFS)
# define SWIFT_TYPEDEFS 1
# if defined(__has_include) && __has_include(<uchar.h>)
#  include <uchar.h>
# elif !defined(__cplusplus) || __cplusplus < 201103L
typedef uint_least16_t char16_t;
typedef uint_least32_t char32_t;
# endif
typedef float swift_float2  __attribute__((__ext_vector_type__(2)));
typedef float swift_float3  __attribute__((__ext_vector_type__(3)));
typedef float swift_float4  __attribute__((__ext_vector_type__(4)));
typedef double swift_double2  __attribute__((__ext_vector_type__(2)));
typedef double swift_double3  __attribute__((__ext_vector_type__(3)));
typedef double swift_double4  __attribute__((__ext_vector_type__(4)));
typedef int swift_int2  __attribute__((__ext_vector_type__(2)));
typedef int swift_int3  __attribute__((__ext_vector_type__(3)));
typedef int swift_int4  __attribute__((__ext_vector_type__(4)));
#endif

#if !defined(SWIFT_PASTE)
# define SWIFT_PASTE_HELPER(x, y) x##y
# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
#endif
#if !defined(SWIFT_METATYPE)
# define SWIFT_METATYPE(X) Class
#endif

#if defined(__has_attribute) && __has_attribute(objc_runtime_name)
# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
#else
# define SWIFT_RUNTIME_NAME(X)
#endif
#if defined(__has_attribute) && __has_attribute(swift_name)
# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
#else
# define SWIFT_COMPILE_NAME(X)
#endif
#if !defined(SWIFT_CLASS_EXTRA)
# define SWIFT_CLASS_EXTRA
#endif
#if !defined(SWIFT_PROTOCOL_EXTRA)
# define SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_ENUM_EXTRA)
# define SWIFT_ENUM_EXTRA
#endif
#if !defined(SWIFT_CLASS)
# if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted)
#  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
#  define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# else
#  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
#  define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# endif
#endif

#if !defined(SWIFT_PROTOCOL)
# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
#endif

#if !defined(SWIFT_EXTENSION)
# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
#endif

#if !defined(OBJC_DESIGNATED_INITIALIZER)
# if defined(__has_attribute) && __has_attribute(objc_designated_initializer)
#  define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
# else
#  define OBJC_DESIGNATED_INITIALIZER
# endif
#endif
#if !defined(SWIFT_ENUM)
# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_EXTRA _name : _type
# if defined(__has_feature) && __has_feature(generalized_swift_name)
#  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_EXTRA _name : _type
# else
#  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) SWIFT_ENUM(_type, _name)
# endif
#endif
#if defined(__has_feature) && __has_feature(modules)
@import UIKit;
@import CoreGraphics;
@import ObjectiveC;
#endif

#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
#pragma clang diagnostic ignored "-Wduplicate-method-arg"
@class UILabel;
@class NSLayoutConstraint;
@class NSCoder;

SWIFT_CLASS("_TtC15TIPBadgeManager12TIPBadgeView")
@interface TIPBadgeView : UIView
@property (nonatomic, strong) UILabel * _Null_unspecified label;
@property (nonatomic, strong) NSLayoutConstraint * _Nullable leftLabelConstraint;
@property (nonatomic, strong) NSLayoutConstraint * _Nullable rightLabelConstraint;
@property (nonatomic, readonly) CGFloat STANDARD_MARGIN;
@property (nonatomic, readonly) CGFloat LARGER_MARGIN;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER;
- (void)setBadgeValue:(NSInteger)val;
- (void)setMarginsForVal:(NSInteger)val;
@end

@class UITabBarItem;

SWIFT_CLASS("_TtC15TIPBadgeManager19TIPTabBarItemObject")
@interface TIPTabBarItemObject : NSObject
@property (nonatomic, weak) UITabBarItem * _Nullable tabBar;
@property (nonatomic) NSInteger badgeValue;
- (nonnull instancetype)initWithTabBar:(UITabBarItem * _Nonnull)tabBar OBJC_DESIGNATED_INITIALIZER;
- (void)changeBadgeValue:(NSInteger)value;
@end

SWIFT_CLASS("_TtC15TIPBadgeManager13TIPViewObject")
@interface TIPViewObject : NSObject
@property (nonatomic) BOOL observerTriggered;
@property (nonatomic) NSInteger badgeValue;
@property (nonatomic, weak) UIView * _Nullable view;
@property (nonatomic, weak) TIPBadgeView * _Nullable badgeView;
- (nonnull instancetype)initWithView:(UIView * _Nonnull)view OBJC_DESIGNATED_INITIALIZER;
- (void)changeBadgeValue:(NSInteger)value;
- (void)clearBadge;
@end

#pragma clang diagnostic pop
colasbd commented 8 years ago

I guess (I don't know swift) that you need to make TIPBadgeManager a subclass of NSObject

johncosch commented 8 years ago

@colasbd thanks for submitting this! Give me a few days to see if I can figure this out, or push a release that inherits from NSObject. I'll keep you in the loop.

colasbd commented 8 years ago

Ok @johncosch in the meanwhile, I decided not to use badges but that will be cool for future users ;-)