标签: nsmutablearray

iPhone Obj C - 对可变数组字典进行排序 - 显示字符串但按值排序

我有一个NSMutableArray,里面有30个字典.每个都包含名称和值.我目前已经对名称进行了排序,以便按字母顺序在表格视图中显示.但是,我想制作一个UIButton来提供仍然显示名称的选项,但是按照价值排序.不需要显示该值.另外,在.m/.h文件中放置这些代码的位置是什么?谢谢!

sorting objective-c nsdictionary nsmutablearray iphone-sdk-3.0

3
推荐指数
1
解决办法
1万
查看次数

释放NSMutableArray不会影响数组中元素的数量

有人可以向我解释以下结果吗?

//generate an array with 4 objects
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:
                         [NSNumber numberWithInt:1],
                         [NSNumber numberWithInt:2],
                         [NSNumber numberWithInt:3],
                         [NSNumber numberWithInt:4],
                         nil];
//release the array    
[array release];

//get a count of the number of elements in the array
int count = [array count]; <---  count returns 4
Run Code Online (Sandbox Code Playgroud)

我的计数不应该是零吗?'release'不会从数组中删除所有元素吗?

memory-management objective-c nsmutablearray

3
推荐指数
1
解决办法
39
查看次数

在NSMutableArray中的NSDictionary上的sortUsingComparator,带有多个objectKeys

我正在尝试对NSDictionaries的mutableArray进行排序,目前我可以通过使用一个objectForKey值进行排序来实现这一点,但是这个问题是很多这些值可以是相同的所以我需要让另一个objectForKey来对数组进行排序.我想知道,如果第一个objectForKey比较返回一个相同的值,我怎么能进行第二个objectForKey比较,依此类推......

目前我正在这样做,这有效..但显然只有一个键.

[dataArrayOfDictionaries sortUsingComparator:^ NSComparisonResult(NSDictionary *d1, NSDictionary *d2)
    {
        NSString *n1 = [d1 objectForKey:@"DESCRIPTION"];
        NSString *n2 = [d2 objectForKey:@"DESCRIPTION"];
        return [n1 localizedCompare:n2];
    } ];
Run Code Online (Sandbox Code Playgroud)

在我的调查中,我试过这个 -

[dataArrayOfDictionaries sortUsingComparator:^ NSComparisonResult(NSDictionary *d1, NSDictionary *d2)
{
    NSString *n1 = [d1 objectForKey:@"DESCRIPTION"];
    NSString *n2 = [d2 objectForKey:@"DESCRIPTION"];
    return [n1 localizedCompare:n2];
    n1 = [d1 objectForKey:@"ID"];
    n2 = [d2 objectForKey:@"ID"];
    return [n1 localizedCompare:n2];

} ];
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用,因为它对描述排序然后完全使用基于ID,我想要它如果描述键是相同的然后通过ID键对这些值进行排序..如果这不起作用然后下去的列表键直到它排序..我希望这是有道理的..任何帮助将非常感激.

iphone nsdictionary nsmutablearray ios

3
推荐指数
1
解决办法
2369
查看次数

按降序排序NSMutable数组

我一直在阅读一些关于订购NSMutable数组的帖子,但是在使用它时遇到了麻烦,本质上我在tableview中有很多条目,可以添加无限量,但是我需要通过包含NSMutable数组来排序它们数值,这将远远超过10.我真的很感激任何人可以给我的帮助,我一直在使用比较参数,但我似乎无法让它扭转顺序,其次我读了上面的数字10会以奇怪的方式开始排序.我很快就会发布代码,但是我要考虑的任何事情都会很棒.

谢谢

nsmutablearray

3
推荐指数
1
解决办法
1557
查看次数

目标C:通过字典键的值过滤掉NSMutableArray的结果?

我有一个像这样的NSMutableArray:

(
        {
        City = "Orlando";
       Name = "Shoreline Dental";
        State = Florida;
    },
        {
        City = "Alabaster ";
        Name = Oxford Multispeciality;
        State = Alabama;
    },
        {
        City = Dallas;
        Name = "Williams Spa";
        State = Texas;
    },
        {
        City = "Orlando ";
        Name = "Roast Street";
        State = Florida;
    }
)
Run Code Online (Sandbox Code Playgroud)

现在,我如何对这个NSMutableArray进行排序,以获得与我希望获得的状态"佛罗里达"相对应的结果

(
        {
        City = "Orlando";
       Name = "Shoreline Dental";
        State = Florida;
    },
 {
        City = "Orlando ";
        Name = "Roast Street";
        State = Florida;
    } …
Run Code Online (Sandbox Code Playgroud)

iphone nsmutablearray ios xcode4.5

3
推荐指数
1
解决办法
4253
查看次数

NSMutableArray不添加对象

我认为,我正在做一个非常基本的错误,但我正在使用一个NSMutableArray,这不知何故不添加对象,我发送它的方式.我有一个属性(和合成)

@property (nonatomic, strong) NSMutableArray *kpiStorage;
Run Code Online (Sandbox Code Playgroud)

然后:

ExampleObject *obj1 = [[ExampleObject alloc] init];
[kpiStorage addObject:obj1];
ExampleObject *obj2 =  [[ExampleObject alloc] init];
[kpiStorage addObject:obj2];

NSLog(@"kpistorage has:%@", [kpiStorage count]);
Run Code Online (Sandbox Code Playgroud)

并且总是在控制台中返回(null).我有什么误会?

objective-c count nsmutablearray ios

3
推荐指数
1
解决办法
1万
查看次数

在里面找到字典键和字典数组

我有一个包含多个NSMutableDictionary对象的数组.

每次填写文本字段并按下提交按钮:

//The strings
NSString *dateString = @"Date";
NSString *timeString = @"Time";
NSString *typeString = @"Type";

- (IBAction)addData:(id)sender {

[_myDictionary setObject:_dateLabel.text forKey:dateString];
[_myDictionary setObject:_nNumber.text forKey:timeString];
[_myDictionary setObject:_type.text forKey:typeString];

[_myArray addObject:_myDictionary];

[self display]
}
Run Code Online (Sandbox Code Playgroud)

然后我试图在UItextView中显示结果(在这个例子中是日期),但我不知道如何.

    -(void)displayData{

    for (int i = 0; i<_myArray.count; i++) {
        [_myArray objectAtIndex:i];
        outputString = [outputString stringByAppendingFormat:@"%@\n",[_myDictionary objectForKey:@"Date"]];

    }
    _myTextView.text = [NSString stringWithFormat:@"%@",outputString];

}
Run Code Online (Sandbox Code Playgroud)

这最终显示数组中最后一个Dictionary的日期.我甚至无法弄清楚如何从特定的字典中记录日期.
说[_myArray objectAtIndex:3] [_myDictionary objectForKey:@"Date"].我如何记录第三个索引的日期?

希望这是有道理的

EDIT SOLUTION

for (int i = 0; i<_myArray.count; i++)
    {

        outputString = [outputString stringByAppendingFormat:@"%@ …
Run Code Online (Sandbox Code Playgroud)

nsmutablearray nsmutabledictionary ios

3
推荐指数
1
解决办法
1万
查看次数

在NSMutableArray中轻松交换对象

我有一个NSMutableArray的UIViews,我把在UIScrollView其负责将它们按顺序.现在我有这个代码用于互换两个UIViews位置:

UIView *viewToBeChanged = [views objectAtIndex:self.page];
UIView *previousView = [views objectAtIndex:previousPage];

[views removeObjectAtIndex:self.page];
[views removeObjectAtIndex:previousPage];

[views insertObject:viewToBeChanged atIndex:previousPage];
[views insertObject:previousView atIndex:self.page];
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来改变NSMutableArray另一个对象的位置?谢谢!

cocoa-touch objective-c uikit nsmutablearray ios

3
推荐指数
1
解决办法
101
查看次数

indexofobject返回零

我正在尝试使用从故事板构建的场景来构建应用程序的演练.

所以我填充了我的viewControllers数组,称为pages:

@interface PVCPagesViewController () {
    NSMutableArray *pages;
}

@property (retain, nonatomic) NSMutableArray *pages;
@property (strong, nonatomic) UIPageViewController *pageController;


@end
Run Code Online (Sandbox Code Playgroud)

在viewDidLoad()中:

self.pages = [[NSMutableArray alloc] init];

UIViewController *page1 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"page1"];

UIViewController *page2 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"page2"];

UIViewController *page3 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"page3"];

UIViewController *page4 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"page4"];

self.pages = [[NSMutableArray alloc] initWithObjects:page1, page2, page3, page4, nil];
Run Code Online (Sandbox Code Playgroud)

但是当我要在viewControllerAfterViewController()中从数组加载另一个视图控制器时:

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {

    NSInteger index = [self.pages indexOfObject:viewController];

    index++;

    return [self.pages objectAtIndex:index]; …
Run Code Online (Sandbox Code Playgroud)

objective-c nsmutablearray uipageviewcontroller

3
推荐指数
1
解决办法
1048
查看次数

如何实现countByEnumeratingWithState:objects:count:用于内部使用NSMutableArray的类

我想用

 for (TBL_CardView *cardView in cardsInHand)
    {
        // <#statements#>
    }
Run Code Online (Sandbox Code Playgroud)

TBL_CardView是我的自定义类,而且cardsInHand只是(TBL_CardViewArray*)

所以我需要countByEnumeratingWithState:objects:count:为我的TBL_CardViewArray班级实施.
它是否正确 ?

这是我的TBL_CardViewArray.h

/**
 *    Keep TBL_CardView in array
 */
@interface TBL_CardViewArray : NSObject

- (TBL_CardView *)drawCard;
- (void)addCard:(TBL_CardView *)card;
- (NSUInteger)cardsRemaining;
- (NSArray*) cardViewArray;

- (TBL_CardView *)drawRandomCard;

@end 
Run Code Online (Sandbox Code Playgroud)

来自TBL_CardViewArray.m的一些重要部分

@implementation TBL_CardViewArray
{
    NSMutableArray *_cards;
}
Run Code Online (Sandbox Code Playgroud)

所以我只是使用TBL_CardViewArrayNSMutableArray的包装来存储我的TBL_CardView类.

问题
如何实现countByEnumeratingWithState:objects:count:用于我的TBL_CardViewArray类.

我确实谷歌它,但没有找到一些我可以轻松重用的例子.
我的假设是因为我已经在使用NSMutableArray存储它并不是那么复杂,但我无法弄清楚如何?

objective-c nsmutablearray ios nsfastenumeration

3
推荐指数
1
解决办法
1171
查看次数