मैं निम्न नमूना कोड लिखा कैसे एआरसीआईओएस में कमजोर एनएसएसटींग गुण क्यों जारी नहीं किए जाते हैं?
@property (nonatomic, weak) NSString *myString;
@property (nonatomic, weak) NSObject *myObj;
@end
@implementation ViewController
@synthesize myString = _myString;
@synthesize myObj = _myObj;
- (void) viewDidAppear:(BOOL)animated
{
NSLog(@"Appearing Obj: !%@!",self.myObj);
NSLog(@"Appearing String: !%@!",self.myString);
}
- (void)viewDidLoad
{
self.myObj = [[NSObject alloc] init];
self.myString = [[NSString alloc] init];
NSLog(@"Loading Obj %@",self.myObj);
NSLog(@"Loading String: !%@!",self.myString);
}
हालांकि आश्चर्यजनक रूप से मैं इन परिणामों मिला कारगर सिद्ध होगा:
2012-06-19 15:08:22.516 TESTER[4041:f803] Loading Obj (null)
2012-06-19 15:08:22.517 TESTER[4041:f803] Loading String: !!
2012-06-19 15:08:22.533 TESTER[4041:f803] Appearing Obj: !(null)!
2012-06-19 15:08:22.535 TESTER[4041:f803] Appearing String: !!
आप देख सकते हैं, Obj ठीक से जारी किया गया, लेकिन मेरी स्ट्रिंग (जो भी है एक कमजोर संपत्ति) शून्य से प्रिंट नहीं करता है ... क्यों नहीं?
क्या स्ट्रिंग जिसे आप 'myString' में सेट कर रहे हैं, किसी भी स्ट्रिंग शाब्दिक (कुछ @ हैलो वर्ल्ड! ") से बदलते हैं? –