Method
- (void)addObserver:(id)observer
forName:(NSString *)name
object:(id)object
queue:(NSOperationQueue *)queue
usingBlock:(void (^)(NSNotification *note, __weak id observer))block;
Usage
#ifndef NS_DESIGNATED_INITIALIZER | |
#if __has_attribute(objc_designated_initializer) | |
#define NS_DESIGNATED_INITIALIZER __attribute((objc_designated_initializer)) | |
#else | |
#define NS_DESIGNATED_INITIALIZER | |
#endif | |
#endif |
<?xml version="1.0" encoding="UTF-8"?> | |
<Bucket | |
type = "2" | |
version = "2.0"> | |
<Breakpoints> | |
<BreakpointProxy | |
BreakpointExtensionID = "Xcode.Breakpoint.SymbolicBreakpoint"> | |
<BreakpointContent | |
shouldBeEnabled = "Yes" | |
ignoreCount = "0" |
while { | |
let x = foo(); | |
bar(x); | |
x != 0 | |
} {} | |
#import path | |
export PATH=${PATH}:/usr/local/bin | |
#import what we have in bash_profile | |
source ~/.bash_profile | |
#check for oclint | |
hash oclint &> /dev/null | |
if [ $? -eq 1 ]; then | |
echo >&2 "oclint not found, analyzing stopped" | |
exit 1 | |
fi |
Method
- (void)addObserver:(id)observer
forName:(NSString *)name
object:(id)object
queue:(NSOperationQueue *)queue
usingBlock:(void (^)(NSNotification *note, __weak id observer))block;
Usage
Greetings, NSHipsters!
As we prepare to increment our NSDateComponents -year
by 1
, it's time once again for NSHipster end-of-the-year Reader Submissions! Last year, we got some mind-blowing tips and tricks. With the release of iOS 7 & Mavericks, and a year's worth of new developments in the Objective-C ecosystem, there should be a ton of new stuff to write up for this year.
Submit your favorite piece of Objective-C trivia, framework arcana, hidden Xcode feature, or anything else you think is cool, and you could have it featured in the year-end blowout article. Just comment on this gist below!
Here are a few examples of the kind of things I'd like to see:
NSStringFromSelector(@selector())
as a safer way to do KVC / KVO / NSCoding.// 1. Go to page https://www.linkedin.com/settings/email-frequency | |
// 2. You may need to login | |
// 3. Open JS console | |
// ([How to?](http://webmasters.stackexchange.com/questions/8525/how-to-open-the-javascript-console-in-different-browsers)) | |
// 4. Copy the following code in and execute | |
// 5. No more emails | |
// | |
// Bookmarklet version: | |
// http://chengyin.github.io/linkedin-unsubscribed/ |
@interface NSKeyedUnarchiver (Xcode5Fix) | |
@end | |
@implementation NSKeyedUnarchiver (Xcode5Fix) | |
+ (void)load | |
{ | |
[self exchangeInstanceMethod:@selector(decodeInt32ForKey:) | |
withMethod:@selector(xcode5Fix_decodeInt32ForKey:)]; | |
} |
// Taken from http://PSPDFKit.com. This snippet is under public domain. | |
#define UIKitVersionNumber_iOS_7_0 0xB57 | |
BOOL PSPDFIsUIKitFlatMode(void) { | |
static BOOL isUIKitFlatMode = NO; | |
static dispatch_once_t onceToken; | |
dispatch_once(&onceToken, ^{ | |
// We get the modern UIKit if system is running >= iOS 7 and we were linked with >= SDK 7. | |
if (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber_iOS_7_0) { | |
isUIKitFlatMode = (NSVersionOfLinkTimeLibrary("UIKit") >> 16) >= UIKitVersionNumber_iOS_7_0; | |
} |
#import <UIKit/UIKit.h> | |
#import <QuartzCore/QuartzCore.h> | |
@interface AJSPopoverView : UIPopoverBackgroundView | |
@end |