I want to use this for an object factory: Given a string, create a Class, and if this Class supports a protocol (with a Create() method) then alloc the class and call Create.
Objective C : Given a Class id, can I check if this class implements a certain protocol? Or has a certain selector?
21.9k views Asked by Jacko At
2
There are 2 answers
Related Questions in OBJECTIVE-C
- How to control the volume of an iPhone programmatically in objective-c
- Occasional crash at NSURLSessionDataTask dataTaskWithRequest:completionHandler:
- How to set value the descriptor of iOS BLE in Objective-C?
- Unexpected #selector() Behavior in Swift-Objective-C Interop?
- In what context can we use an unqualified #selector() expression in Swift?
- AVPictureInPictureController crashes during initialization
- How to use pow() in Objective-C?
- How to change the image on the MGSwipeButton in MGSwipeTableCell
- Using sort descriptors in Outline View
- Why is my Swift function not printing from inside the dataTask closure?
- Using UICollectionViewCell with IBOutlet
- Undefined symbol: _OBJC_CLASS_$_ only on simulator
- Why can't I receive a notification sent from Camera Extension(Swift) to an observer application (obj-c++)
- Behavior of __block modifier in objc
- Inserting subview into view where I've added subviews and sublayers
Related Questions in CLASS
- Why is this namespace unable to be found?
- How do I initialise a class within a class
- How to solve compiler error: no matching function for call to 'dmhFS::dmhFS()' in my case?
- Tkinter App - My Toplevel window is not appearing. App is stuck in mainloop
- Grouping HTML elements by their class name
- Troubleshooting object instantiation based on role in PHP app
- Using attributes from instances of array of objects in other classes
- Error NullPointerExeception: When trying to add Value in ArrayList & adapter.notifydatachanged
- How to get class properties or fields using reflection in Kotlin/Native?
- why we got same data type in two versions like "int" and "integer" in php?
- Initializing member class with referenced inputs within parent class constructor
- Have a script work multiple times with the same class
- Encapsulation does not seem to work in dart
- Page reloads on button click while event.preventDefault() is used
- C++ - Unknown type name
Related Questions in PROTOCOLS
- Python Client-Server Communication with Protocol
- Protocol 43200 after unpacking received data
- Creating a Public Typealias to Combine Multiple Protocols in One Swift Package/Target and Conforming to It in Other Targets
- Automotive: Can we design a secured PDU which is beyond 8 bytes and send it using CAN TP?
- Subtle protocol difference
- What type of communication protocol should I use for a shortlived data stream to an web application
- Firefox - Allowing about: protocol
- How to scan and message devices connected to OpenThread border router from Android app?
- v2gexi protocol Data parshing from pcap file
- "Encountering 'protocol busy' error with node-open-protocol-desoutter in Node.js when performing screwing actions
- Cannot Convert Custom ExpyTableView Type in Swift
- Swift: Singleton class "extends" from protocol
- Use a protocol rather than a struct as an (optional array) extension?
- Is there a way to encapsulate certain properties in a Swift protocol so they aren't visible to users of the protocol?
- Understanding “Finding the Dynamic Type in a Generic Context”
Related Questions in OBJECTFACTORY
- mapstruct and lombok: How to avoid usage of no args constructor in generated mapper?
- Registering call to object factory causes segfault
- Specify a `DataSource` factory instead of Tomcat's default
- Android: class file for javax.naming.spi.ObjectFactory not found - when I tried to integrate Hessian into Android
- How to use a object factory with contextlib
- OOP Javascript: Built in vs User defined Constructor
- Objects not registered in the factory when the code is compiled as a library but works fine as stand alone
- How to map an attribute of Type Object in ORIKA
- C++ preventing user from creating object instances
- How to call constructor of class which are instantiated through Structure Map in C#
- How to create dynamic instance when java web service client class exist with version number?
- C++ object factory with built-in cache - shadows template parameter
- c++11 singleton of a derived class with an abstract factory
- Object Factory with limited base class
- Orika - Determining constructor call without registering an ObjectFactory
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
May I, however, point out just how many awful Objective-C rules you're breaking by doing the above? For example, you should never be calling methods on an allocated-but-not-initialized instance. The Xcode Static Analyzer will give you all sorts of warnings about memory leaks.
A better option would be this:
But you seem to imply that you don't want to call init.
You could consider a class method:
[klass create], which would return a non-owned instance ofklass. Then you'd just check[klass respondsToSelector:@selector(create)]before calling it.