Http://cocoaheads.tumblr.com/post/17757846453/objective-c-literals-for-nsd অভিধান-nsarray- এবং : থেকে ভারব্যাটিম অনুলিপি করা হয়েছে :
অবজেক্টিভ-সি আক্ষরিক: এখন কেউ এনএসআরাই, এনএসডি অভিধান এবং এনএসএনম্বারের জন্য আক্ষরিক তৈরি করতে পারে (ঠিক যেমন কেউ এনএসএসআরংয়ের জন্য আক্ষরিক তৈরি করতে পারে)
এনএসআরারি লিটারালস
পূর্বে:
array = [NSArray arrayWithObjects:a, b, c, nil];
এখন:
array = @[ a, b, c ];
এনএসডিকোয়্যারিয়ান লিটারালস
পূর্বে:
dict = [NSDictionary dictionaryWithObjects:@[o1, o2, o3]
forKeys:@[k1, k2, k3]];
এখন:
dict = @{ k1 : o1, k2 : o2, k3 : o3 };
এনএস নাম্বার লিটারালস
পূর্বে:
NSNumber *number;
number = [NSNumber numberWithChar:'X'];
number = [NSNumber numberWithInt:12345];
number = [NSNumber numberWithUnsignedLong:12345ul];
number = [NSNumber numberWithLongLong:12345ll];
number = [NSNumber numberWithFloat:123.45f];
number = [NSNumber numberWithDouble:123.45];
number = [NSNumber numberWithBool:YES];
এখন:
NSNumber *number;
number = @'X';
number = @12345;
number = @12345ul;
number = @12345ll;
number = @123.45f;
number = @123.45;
number = @YES;
[সম্পাদনা]
zxoq এ http://news.ycombinator.com/item?id=3672744 আরো আকর্ষণীয় নতুন subscripting যোগ করা হয়েছে। (আক্ষরিক সহ যুক্ত):
arr[1] === [arr objectAtIndex:1]
dict[@"key"] === [dict objectForKey:@"key"]
[সম্পাদনা 2]
নতুন ওজেজেসি লিটারেলগুলি একাধিক ডাব্লুডাব্লুডিসি 2012 সেশনে আলোচনা করা হয়েছিল । আমি ইচ্ছাকৃতভাবে ফাইলের নাম এবং প্রতিটি স্লাইডের সময় সরিয়ে নিই যাতে আপনি নিজের মতো করে নিজের মতো করে খুঁজে পেতে পারেন। তারা এই পোস্টে বর্ণিত হিসাবে মূলত একই জিনিস, তবে কয়েকটি নতুন জিনিসও রয়েছে যা আমি চিত্রগুলির উপরে উল্লেখ করব।
দয়া করে মনে রাখবেন যে চিত্রগুলি সমস্ত বড়। তাদের মূল আকারে দেখার জন্য কেবল তাদের অন্য ট্যাবে টেনে আনুন
[NSNumber numberWithint:42]
[NSNumber numberWithDouble:10.8]
[NSNumber numberWithBool:YES]
[NSNumber numberWithint:6 + x * 2012]
@42
@10.8
@YES
@(6 + x * 2012)
[NSArray arrayWithObjects: a, b, c, nil]
[array objectAtIndex:i]
[NSDictionary dictionaryWithObjectsAndKeys: v1, k1, v2, k2, nil];
[dictionary valueForKey:k]
@[a, b, c]
array[i]
@{k1:v1, k2:v2}
dictionary[k]
এই অংশটি নতুন। এক্সপ্রেশন লিটারালস
আপনার যখন কোনও অভিব্যক্তি থাকে ( M_PI / 16
উদাহরণস্বরূপ) আপনার এটি বন্ধনীতে রাখা উচিত।
এই সিনট্যাক্সটি অঙ্কের এক্সপ্রেশন, বুলিয়ানস, একটি (সি-) স্ট্রিংয়ের একটি সূচক খুঁজে পাওয়া, বুলিয়ান মান, এনাম ধ্রুবক এবং এমনকি অক্ষরের স্ট্রিংয়ের জন্য কাজ করে!
NSNumber *piOverSixteen = [NSNumber numberWithDouble: (M_PI / 16)];
NSNumber *hexDigit = [NSNumber numberWithChar:"0123456789ABCDEF"[i % 16]];
NSNumber *usesScreenFonts = [NSNumber numberWithBool:[NSLayoutManager usesScreenFonts]];
NSNumber *writingDirection = [NSNumber numberWithInt:NSWritingDirectionLeftToRight];
NSNumber *path = [NSString stringWithUTF8String: getenv("PATH")];
NSNumber *piOverSixteen = @( M_PI / 16 );
NSNumber *hexDigit = @( "0123456789ABCDEF"[i % 16] );
NSNumber *usesScreenFonts = @( [NSLayoutManager usesScreenFonts] );
NSNumber *writingDirection = @( NSWritingDirectionLeftToRight );
NSNumber *path = @( getenv("PATH") );
চরিত্রের স্ট্রিং এবং আপনি / কখন এই আক্ষরিক বাক্য গঠন ব্যবহার করতে পারেন সে সম্পর্কে আরও:
NSString *path = [NSString stringWithUTF8String: getenv("PATH")];
for (NSString *dir in [path componentsSeparatedByString: @":"]) {
// search for a file in dir...
}
NSString *path = @( getenv("PATH") );
for (NSString *dir in [path componentsSeparatedByString: @":"]) {
// search for a file in dir...
}
অ্যারে আক্ষরিক কাজ কিভাবে
// when you write this:
array = @[a, b, c ];
// compiler generates:
id objects[] = { a, b, c };
NSUInteger count = sizeof(objects) / sizeof(id);
array = [NSArray arrayWithObjects:objects count:count];
অভিধান অভিধানে কীভাবে কাজ করে
// when you write this:
dict = @{k1 : o1, k2 : o2, k3 : o3 };
// compiler generates:
id objects[] = { o1, o2, o3 };
id keys[] = { k1, k2, k3 };
NSUInteger count = sizeof(objects) / sizeof(id);
dict = [NSDictionary dictionaryWithObjects:objects
forKeys:keys
count:count];
অ্যারে সাবস্ক্রিপশন সম্পর্কে আরও
@implementation SongList {
NSMutableArray *_songs;
}
- (Song *)replaceSong:(Song *)newSong atindex:(NSUinteger)idx {
Song *oldSong = [_songs objectAtIndex:idx];
[_songs replaceObjectAtindex:idx withObject:newSong];
return oldSong;
}
@implementation SongList {
NSMutableArray *_songs;
}
- (Song *)replaceSong:(Song *)newSong atindex:(NSUinteger)idx {
Song *oldSong = _songs[idx];
_songs[idx] = newSong;
return oldSong;
}
অভিধান সাবস্ক্রিপশন সম্পর্কে আরও
@implementation Database {
NSMutableDictionary *_storage;
}
- (id)replaceObject:(id)newObject forKey:(id <NSCopying>)key {
id oldObject = [_storage objectForKey:key];
[_storage setObject:object forKey:key];
return oldObject;
}
@implementation Database {
NSMutableDictionary *_storage;
}
- (id)replaceObject:(id)newObject forKey:(id <NSCopying>)key {
id oldObject = _storage[key];
_storage[key] = newObject;
return oldObject;
}
[সম্পাদনা 3]
এই নতুন আক্ষরিক সম্পর্কে মাইকের অ্যাশের দুর্দান্ত রচনা রয়েছে। আপনি যদি এই জিনিসগুলি সম্পর্কে আরও জানতে চান তবে এটি নিশ্চিত করে দেখুন ।