2 clang -g ExtendSuperclass.m -o ExtendSuperclass -framework Foundation -framework ProtectedCloudStorage -F/System/Library/PrivateFrameworks/ -framework CloudKit && ./ExtendSuperclass
5 #import <Foundation/Foundation.h>
6 #import <CloudKit/CloudKit.h>
8 #define SuperClass CKDatabase
10 @interface SubClass : SuperClass
14 @interface SuperClass ()
15 @property (nonatomic, strong) NSString *_sc_name;
16 @property (nonatomic, strong) NSString *_sc_name2;
17 @property (nonatomic, strong) NSString *_sc_name3;
18 @property (nonatomic, strong) NSString *_sc_name4;
19 @property (nonatomic, strong) NSString *_sc_name5;
20 @property (nonatomic, strong) NSString *_sc_name6;
21 @property (nonatomic, strong) NSString *_sc_name7;
22 @property (nonatomic, strong) NSString *_sc_name8;
25 @implementation SuperClass (MySuperClass)
26 - (id)initThatDoesNotAssert
32 @implementation SubClass
33 - (id)initThatDoesNotAssert
35 assert(_sc_name == nil);
36 assert(_sc_name2 == nil);
37 assert(_sc_name3 == nil);
38 assert(_sc_name4 == nil);
39 assert(_sc_name5 == nil);
40 assert(_sc_name6 == nil);
41 assert(_sc_name7 == nil);
42 assert(_sc_name8 == nil); // break here
44 if ((self = [super _initWithContainer:(CKContainer*)@"foo" scope:0xff])) {
45 assert(_sc_name == nil);
46 assert(_sc_name2 == nil);
47 assert(_sc_name3 == nil);
48 assert(_sc_name4 == nil);
49 assert(_sc_name5 == nil);
50 assert(_sc_name6 == nil);
51 assert(_sc_name7 == nil);
52 assert(_sc_name8 == nil);
59 @synthesize _sc_name2;
60 @synthesize _sc_name3;
61 @synthesize _sc_name4;
62 @synthesize _sc_name5;
63 @synthesize _sc_name6;
64 @synthesize _sc_name7;
65 @synthesize _sc_name8;
66 - (void)foo:(NSString*)bar { self._sc_name = bar; }
67 - (NSString*)description { return [NSString stringWithFormat:@"%p: %@", self, self._sc_name]; }
72 SubClass *sc = [[SubClass alloc] initThatDoesNotAssert];
76 sc._sc_name = @"bar2";
78 NSLog(@"%@", sc._sc_name);