标签: nsmutablearray

如何在uinavigationcontroller堆栈中检查uiviewcontroller

我有一个UINavigationController.我必须从a弹出一个视图UINavigationController并用另一个视图替换它.我们如何搜索UIViewController对象并用另一个替换它?

当我打印

NSMutableArray *allViewControllers = [NSMutableArray arrayWithArray:           myDelegate.navigationController.viewControllers];
Run Code Online (Sandbox Code Playgroud)

我试过了..

[allViewControllers removeObjectIdenticalTo: @"NonLogginedViewController"];         
[allViewControllers removeObjectIdenticalTo: myDelegate.nonLogginedViewController];
myDelegate.navigationController.viewControllers = allViewControllers;
Run Code Online (Sandbox Code Playgroud)

但它并没有更新的UINavigationController堆栈..我不知道如何使用removeObjectIdenticalTo与UINavigationController堆栈..

请帮我 ..

iphone stack objective-c nsmutablearray uinavigationcontroller

4
推荐指数
1
解决办法
5993
查看次数

sortUsingSelector未排序NSStrings数组

这对我来说很困惑.我有一个功能,这样做:

void ListAllStoredLocations(NSString *SearchTerm){  
NSMutableDictionary *item;  
NSString* filePath = [[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingString:@"/Preferences/yourprogram.plist"];

item = [[[NSMutableDictionary alloc] initWithContentsOfFile:filePath] mutableCopy]; 

NSMutableArray *ReadStoredArray = [item objectForKey:SearchTerm];
NSMutableArray *SortedArray = [[NSMutableArray alloc] init];
NSString *CurrentResult=@"";

for (int i = 0; i< [ReadStoredArray count]; i++){
    CurrentResult=(NSString *)[ReadStoredArray objectAtIndex:i];
    [SortedArray addObject:CurrentResult];
}

[SortedArray sortUsingSelector:@selector(compare:)];

for (int i = 0; i< [SortedArray count]; i++){
    NSLog(@"%@",[SortedArray objectAtIndex:i]);
}


[item release];
Run Code Online (Sandbox Code Playgroud)

}

哪个在第一个for循环中找到输出NSStrings,如下所示:

LOCATION1

LOCATION2

不是一个位置

LOCATION2

LOCATION3

LOCATION2

我希望输出是按字母顺序排列的:

LOCATION1

LOCATION2

LOCATION2

LOCATION2

LOCATION3

不是一个位置

但是,无论如何,"[SortedArray …

sorting macos objective-c nsmutablearray

4
推荐指数
1
解决办法
9317
查看次数

如何将自定义对象的NSArray归档到Objective-C中的文件

你能告诉我在Objective-C中存档NSArray自定义对象的语法或示例程序吗?

objective-c nsmutablearray nskeyedarchiver

4
推荐指数
1
解决办法
5771
查看次数

如何将活动对象添加到NSMutableArray并在它们被释放时删除它们?

我有类Item和类List(有一个NSMutableArray).

每当类Item被实例化(并销毁)时,它都会发布一个通知,该通知由类List监听.当类List收到通知时,将类Item的实例添加到其列表中.

我正在尝试让课程项目也发布一个通知,它即将被释放.问题是类List的NSMutableArray保留了类Item的实例.

处理这种情况最合适的方法是什么?如果我在将它添加到List的数组时减少计数,那么当类List尝试调用removeObject时会抛出异常(因为它会尝试释放该对象.)

基本上,我想要一个"监视器"类列表,其中包含Item的所有"实时"实例的列表.但是,我还需要能够释放/释放实例并让它们报告它们被释放,因此List可以将它们从NSMutableArray中删除.

谢谢你的帮助.

cocoa objective-c nsmutablearray

4
推荐指数
2
解决办法
1108
查看次数

将NSMutableArray保存为plist?

可能重复:
iOS:将两个NSMutableArray存储在.plist文件中

在我正在开发的应用程序中,我有一堆"注册"对象,其中包含一些字符串,日期和整数.所有这些对象在创建时都存储在NSMutableArray中,我现在想要以某种方式保存此数组,以便当用户关闭应用程序等时,可以在应用程序再次打开时存储和恢复内容.

我已经读过plist可能是最好的方法,但我似乎无法找到任何示例,帖子等显示如何做到这一点?

所以基本上:如何在应用关闭时将我的NSMutableArray保存到plist文件,以及如何再次恢复它?

iphone plist nsmutablearray

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

NSMutableArray filterUsingPredicate仅超过某个索引

我试图用filterUsingPredicate来剔除我的NSMutableArray元素.

棘手的部分是我总是希望在数组中保留至少10个项目,无论它们是否通过谓词测试.所以类似于:

NSPredicate * cullPredicate = [NSPredicate predicateWithFormat:
        @"distanceFromCurrent <= 25 OR index < 10"];

[self.myArray filterUsingPredicate:cullPredicate];
Run Code Online (Sandbox Code Playgroud)

'OR指数<10'表示我想做什么......我意识到它不起作用.

这可能与谓词有关吗?或者我是否需要拉出另一个数组,其元素从10开始,应用过滤器,然后将其添加回原始数组?

objective-c nsmutablearray nspredicate

4
推荐指数
1
解决办法
3063
查看次数

ARC不允许将Objective-C指针隐式转换为'const char*'?

这是我的代码:

//--   check for d/b; create it if it doesn't exist
NSString *docsDir;
NSArray *dirPaths;

NSMutableArray *sqliteArray = [NSMutableArray array];
[sqliteArray addObject: @"CREATE TABLE IF NOT EXISTS SiteData (SITE_ID TEXT PRIMARY KEY NOT NULL, STA1 TEXT "
    "TBM TEST, SITE_DESC TEXT, REMARKS TEXT, LOOP_COUNT INTEGER, DATE TEXT)" ];
[sqliteArray addObject: @"INSERT INTO SiteData (SITE_ID, LOOP_COUNT) VALUES('','')"];
[sqliteArray addObject: @"CREATE TABLE Readings (SITE_ID TEXT REFERENCES SiteData, LOOP_NBR TEXT, LOOP_CLOSED BINARY, "
    "SEQ INTEGER, STA TEXT, BS TEXT, FS TEXT, DESC TEXT, …
Run Code Online (Sandbox Code Playgroud)

objective-c nsmutablearray nsarray

4
推荐指数
1
解决办法
7028
查看次数

NSMutableArray和副本

我有3 NSMutableArrays:a,b,c.

a= [b copy];
a= [c copy];
Run Code Online (Sandbox Code Playgroud)

首次复制的元素(来自b)会发生什么?

在我的use -case中,a是我用作tableview的DataSource的数组,而b,c是在需要时取代数据源的数组.谢谢

具体例子.最后我开始使用setArray.

-(IBAction)selectTab:(id)sender {
    if ([(UIButton*)sender tag] == 1000) {
        if (![self.butonLocuri isSelected]) {

            [tableDataSourceArray setArray:locuriArray];
            [self addPins:self.tableDataSourceArray];
            [self.myTableView reloadData];
        }
    }

    if ([(UIButton*)sender tag] == 2000) {

        if(![self.butonEvenimente isSelected]){

            [tableDataSourceArray setArray:evenimenteArray];
            [self addPins:self.tableDataSourceArray];
            [self.myTableView reloadData];


        }


    }
}
Run Code Online (Sandbox Code Playgroud)

objective-c uitableview nsmutablearray ios

4
推荐指数
1
解决办法
417
查看次数

每次调用count方法时,NSMutableArray是否实际计算项目?

因为可可设计模式,实例方法的名称count中NSMutableArray是不明确的; 它可以要么返回保存的变量count,或者它的每个,它被称为时间可以指望数组中的项,并返回(可可决定了仅返回一个变量的值的方法foo是foo,不getFoo).Objective C NSMutableArray实际上是在每次count调用方法时计算项目,还是返回预先计算的变量的值?如果这是Java,我会查看源代码,但我找不到源代码NSMutableArray.我查看了API,它说的只是:

返回当前数组中的对象数.

由于没有上下文,我无法判断这是否意味着它内部进行了任何计算.

performance objective-c nsmutablearray

4
推荐指数
2
解决办法
510
查看次数

NSArray 或 NSMutableArray 使用 ARC 可能存在内存泄漏

BKObject 是一个自定义对象,我想将多个 BKObject 放入一个数组中。

BK视图控制器:

#import <UIKit/UIKit.h>
#import "BKObject.h"

@interface BKViewController : UIViewController

@property (strong, nonatomic) NSArray *data;
@property (weak, nonatomic) BKObject *tmpObject;

@end
Run Code Online (Sandbox Code Playgroud)

BKViewController.m:

#import "BKViewController.h"

@implementation BKViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSMutableArray *arr = [[NSMutableArray alloc] init];
    for(NSInteger i = 0; i < 100000; i++){
        [arr addObject:[[BKObject alloc] initWithName:@""]];
    }

    self.data = [NSArray arrayWithArray:arr];

    __weak BKObject *weakMutableObject = arr[0];
    [arr removeAllObjects];
    NSLog(@"%@", weakMutableObject); // print out the object, why?

    __weak BKObject *weakObject = self.data[0];
    self.data = nil; …
Run Code Online (Sandbox Code Playgroud)

memory-leaks objective-c nsmutablearray nsarray ios

4
推荐指数
1
解决办法
6535
查看次数