ඔබ පෙළක් වර්ග කරන්නේ නම් NSNumbers
, ඔබට ඒවා 1 ඇමතුමකින් වර්ග කළ හැකිය:
[arrayToSort sortUsingSelector: @selector(compare:)];
එය ක්රියාත්මක වන්නේ අරාවෙහි ඇති NSNumber
වස්තූන් ( වස්තු) සංසන්දනය කිරීමේ ක්රමය ක්රියාත්මක කරන බැවිනි. ඔබට එකම දේ කළ හැකියNSString
වස්තු හැකිය, හෝ සංසන්දනාත්මක ක්රමයක් ක්රියාත්මක කරන අභිරුචි දත්ත වස්තු සමූහයක් සඳහා පවා.
සංසන්දනාත්මක කොටස් භාවිතා කරමින් උදාහරණ කේත කිහිපයක් මෙන්න. සෑම ශබ්දකෝෂයකම "sort_key" යතුරක අංකයක් ඇතුළත් වන ශබ්ද කෝෂ රාශියක් එය වර්ග කරයි.
#define SORT_KEY @\"sort_key\"
[anArray sortUsingComparator:
^(id obj1, id obj2)
{
NSInteger value1 = [[obj1 objectForKey: SORT_KEY] intValue];
NSInteger value2 = [[obj2 objectForKey: SORT_KEY] intValue];
if (value1 > value2)
{
return (NSComparisonResult)NSOrderedDescending;
}
if (value1 < value2)
{
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
}];
ඉහත කේතය එක් එක් වර්ග කිරීමේ යතුර සඳහා පූර්ණ සංඛ්යාවක් ලබා ගැනීම හා ඒවා සංසන්දනය කිරීම, එය කරන්නේ කෙසේද යන්න පිළිබඳ නිදර්ශනයක් ලෙස ය. NSNumber
වස්තූන් සංසන්දනාත්මක ක්රමයක් ක්රියාත්මක කරන බැවින් එය වඩාත් සරලව නැවත ලිවිය හැකිය:
#define SORT_KEY @\"sort_key\"
[anArray sortUsingComparator:
^(id obj1, id obj2)
{
NSNumber* key1 = [obj1 objectForKey: SORT_KEY];
NSNumber* key2 = [obj2 objectForKey: SORT_KEY];
return [key1 compare: key2];
}];
හෝ සංසන්දකයාගේ සිරුර පේළි 1 ක් දක්වා ආසවනය කළ හැකිය:
return [[obj1 objectForKey: SORT_KEY] compare: [obj2 objectForKey: SORT_KEY]];
කේතය කියවීමට පහසු සහ නිදොස් කිරීමට පහසු නිසා මම සරල ප්රකාශ සහ තාවකාලික විචල්යයන් වලට වැඩි කැමැත්තක් දක්වන්නෙමි. සම්පාදකයා තාවකාලික විචල්යයන් කෙසේ හෝ ඉවත් කරයි, එබැවින් සියලු පේළි අනුවාදයට කිසිදු වාසියක් නොමැත.