• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            逛奔的蝸牛

            我不聰明,但我會很努力

               ::  :: 新隨筆 ::  ::  :: 管理 ::
             

            Cocoa and Objective-C: Up and Running (by me) is now available from O'Reilly.

            Inline Arrays of NSSortDescriptors

            NSSortDescriptor is Cocoa's standard class for sorting an NSTableView (or NSArray) by multiple criteria. Sort descriptors are created automatically when the user clicks on a column, but there are a number of situations where you need to create them in code. The API is really simple but the process of getting these things into the table is fairly verbose. Here's a clean and simple way to automate the process, using a category with varargs as input:


            @interface NSSortDescriptor (CDCExtensions)

            + (NSArray *) ascendingDescriptorsForKeys: (NSString *)firstKey,...;

            @end

            You can use it like this:

            NSArray *descriptors = [NSSortDescriptor
                         ascendingDescriptorsForKeys: @"subject", @"date", nil];
                    
            [tableView setSortDescriptors: descriptors];

            Or this:

            NSArray *descriptors = [NSSortDescriptor
                         ascendingDescriptorsForKeys: @"subject", @"date", nil];
                    
            NSArray *sorted = [someArray sortedArrayUsingDescriptors: descriptors];


            Grab zip file with the the .h and .m files. Here's the implementation (formatting adjusted for site):

            @implementation  NSSortDescriptor (CDCAdditions)

            + (NSArray *) ascendingDescriptorsForKeys: (NSString *)firstKey,...
            {    
              id returnArray   = [[NSMutableArray arrayWithCapacity: 5] retain];
              va_list           keyList;
                
              NSString          * oneKey;
              NSSortDescriptor  * oneDescriptor;
              
              if (firstKey)
              {
                oneDescriptor = [[NSSortDescriptor alloc] initWithKey: firstKey
                                                            ascending: YES];
                [returnArray addObject: oneDescriptor];
                [oneDescriptor release];
                
                va_start (keyList, firstKey);
                
                while (oneKey = va_arg(keyList, NSString *))
                {
                  oneDescriptor = [[NSSortDescriptor alloc] initWithKey: oneKey
                                                              ascending: YES];
                  [returnArray addObject: oneDescriptor];
                  [oneDescriptor release];
                }
                
                va_end (keyList);
              }
              
              return [returnArray autorelease];
              
            }

            @end
            Design Element
            Inline Arrays of NSSortDescriptors
            Posted Mar 15, 2005 — 3 comments below




             

            Hayssam — Mar 15, 05 114

            Hi!

            I think there might be a typo in your 
            >   NSSortDescriptor  * descriptor;
            as "descriptor" is never used while "OneDescriptor" is used but not declared.

            Thanks for sharing this snippet !

            Scott Stevenson — Mar 16, 05 115 Scotty the Leopard

            Fixed, thanks. I had tweaked a few things to fit the code on the page, and this was an artifact of that. The code in the zip file was fine, though.

            Scott Stevenson — Mar 16, 05 116 Scotty the Leopard

            Update: I added some discussion about sorting NSArrays.




             

            Comments Temporarily Disabled

            I had to temporarily disable comments due to spam. I'll re-enable them soon.




            Technorati Profile
            Copyright © Scott Stevenson 2004-2008

            From: http://theocacao.com/document.page/87

            @import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
            posted on 2011-12-02 00:01 逛奔的蝸牛 閱讀(289) 評論(0)  編輯 收藏 引用 所屬分類: Cocoa
            国产精品久久久天天影视香蕉| 亚洲午夜无码AV毛片久久| 久久久久99精品成人片直播| 久久人人爽爽爽人久久久| 丁香五月网久久综合| 久久国产成人亚洲精品影院| 伊人久久大香线蕉综合热线| 久久精品国产亚洲AV嫖农村妇女| 丰满少妇人妻久久久久久4| 香蕉久久永久视频| 国产成人精品久久二区二区| 欧美久久久久久精选9999| 性做久久久久久久| 久久精品亚洲男人的天堂| 亚洲国产精品久久久天堂| 久久国产精品国语对白| 人妻少妇久久中文字幕一区二区| 精品国产91久久久久久久a| 久久久久高潮综合影院| 久久久久久毛片免费看| 久久亚洲AV成人出白浆无码国产| 香蕉99久久国产综合精品宅男自 | 久久国产高清字幕中文| 亚洲精品乱码久久久久久蜜桃| 久久777国产线看观看精品| 亚洲AV日韩精品久久久久| 久久影院久久香蕉国产线看观看| 欧美喷潮久久久XXXXx| 久久人人爽人人爽人人片AV高清| 国产AV影片久久久久久| 久久久精品一区二区三区| 久久亚洲AV成人无码国产| 日韩精品久久久久久免费| 狠狠色丁香久久婷婷综合蜜芽五月 | 99久久综合国产精品免费| 久久久久免费视频| 久久久久香蕉视频| 国产一区二区三精品久久久无广告| 97久久精品午夜一区二区| 亚洲国产精品久久久天堂| 无码AV中文字幕久久专区|