标签: nsmutablearray

搜索一系列词典

我正在制作一个iPhone应用程序,显示有关红葡萄酒的信息.这些葡萄酒储存在含有一系列字典的plist中.我正在向应用程序添加一个搜索视图控制器,并且为了轻松启动我想要获得"Name"键的值包含 nameString(来自文本框)的葡萄酒.

它有点停在这里,我需要一些关于最合适的方法的建议.NSArray类中是否有一个函数可以执行此任务,应该引入NSPredicate,NSUserDefaults,还是有其他选项?我做了一些研究,但我需要一些建议,也许是一个开始的例子.

我将推进搜索功能,让用户包括/排除国家,获得适合这种和那种食物的葡萄酒,设定最低价格,最高价格等.字典包含所有这些信息的字符串.所以在我开始这样的高级之前,我需要一些建议,哪些功能可以最好地完成我的工作.

-(IBAction)searchButtonPoke:(id)sender{

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Wines" ofType:@"plist"];
    allObjectsArray = [[NSMutableArray alloc] initWithContentsOfFile:path];

    NSString *nameString = [NSString stringWithFormat:@"%@", [nameTextField text]];

    resultObjectsArray = /*objects where the value for the key "Name" contains
                                                                   nameString*/;
Run Code Online (Sandbox Code Playgroud)

iphone search xcode objective-c nsmutablearray

3
推荐指数
2
解决办法
6903
查看次数

没有从NSMutableArray中删除对象?

我有一个NSMutableArray当我尝试从中删除对象时,对象没有被删除.当我调试我的代码时,其中有数据.这是我的代码 -

NSMutableArray *myArray = [array copy];
// array is NSArray which contains data

[myArray removeObjectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)

arrays iphone objective-c nsmutablearray ios

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

单例的有效使用,Objective C

我对设计模式有点菜鸟。我刚刚开始使用单例,我正在考虑使用单例来方便地将数据存储在一个集中的位置,但在这样做之前,我阅读了一些似乎在说这不是正确设计的帖子(或者我可能很困惑) ,但不清楚为什么。我想做的是这样的:

将多个对象数组存储在一个集中的位置,以便可以对对象进行持久处理。

如果不是单身,有没有更好的方法来做到这一点?如果这是糟糕的设计,知道为什么会很棒。

singleton nsmutablearray ios

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

如何删除具有相同属性值但在NSMutableArray中具有相同属性值的所有对象

我有一个带有url字符串属性和标题的历史对象.我想使用包含搜索字符串的url搜索所有对象的历史记录,然后删除所有重复项.

示例:我有一系列历史记录对象,其中20个都是" https://www.google.com ",其中4个是" https://www.google.com/#q=search ",我想获得一个数组后面只有一个对象,其网址值为" https://www.google.com ",网址值为" https://www.google.com/#q=search "

这是我当前的代码,它搜索历史记录并返回与字符串匹配的所有对象:

    - (NSArray *)historyObjectsContainingQuery:(NSString *)query {
    NSMutableArray *matchingObjects = [[NSMutableArray alloc] init];
    HistoryManager *HM = [HistoryManager sharedInstance];
    for (int i=0; i<[[HM history] count]; i++) {
        //History "days"
        HistoryObject *historyItem = HistoryObject([[HistoryManager sharedInstance] history][i]);

        for (int o=0; o<[historyItem.objects count]; o++) {
            //Each object inn each history day
            HistoryObject *HO = HistoryObject(historyItem.objects[o]);
            if ([HO.title rangeOfString:query options:NSCaseInsensitiveSearch].location != NSNotFound) {
                //history objects with their title containing the query string
                [matchingObjects addObject:HO];
            }
        } …
Run Code Online (Sandbox Code Playgroud)

objective-c nsmutablearray nsobject nspredicate ios

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

如何将唯一对象添加到 nmutablearray?

我有一个带有 NSStrings 的 NSObject。如何仅将具有唯一 obj.name 的对象添加到 NSMutableArray?我试过 NSOrderedSet 但它只有在你将 NSString 添加到数组而不是包含 NSString 的对象时才有效。

例子。

@@interface MyObject : NSObject
@property (strong, nonatomic) NSString *name;
@end


NSMutableArray *array = {MyObject.name,MyObject.name,MyObject.name};
Run Code Online (Sandbox Code Playgroud)

如何确保没有两个 MyObject 具有相同的名称?

unique filter nsmutablearray ios nsorderedset

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

NSMutableArray线程安全

在我的应用程序中,我正在访问并从多个线程更改可变数组.一开始它在我尝试访问一个对象时崩溃objectAtIndex,因为索引超出了界限(该索引处的对象已经从另一个线程中的数组中删除).我在互联网上搜索了如何解决这个问题,我决定尝试这个解决方案.我创建了一个带有NSMutableArray属性的类,请参阅以下代码:

@interface SynchronizedArray()
@property (retain, atomic) NSMutableArray *array;
@end

@implementation SynchronizedArray

- (id)init
{
    self = [super init];
    if (self)
    {
        _array = [[NSMutableArray alloc] init];
    }
    return self;
}

-(id)objectAtIndex:(NSUInteger)index
{
    @synchronized(_array)
    {
        return [_array objectAtIndex:index];
    }
}

-(void)removeObject:(id)object
{
    @synchronized(_array)
    {
        [_array removeObject:object];
    }
}

-(void)removeObjectAtIndex:(NSUInteger)index
{
    @synchronized(_array)
    {
        [_array removeObjectAtIndex:index];
    }
}

-(void)addObject:(id)object
{
    @synchronized(_array)
    {
        [_array addObject:object];
    }
}

- (NSUInteger)count
{
    @synchronized(_array)
    {
        return [_array count];
    }
}

-(void)removeAllObjects …
Run Code Online (Sandbox Code Playgroud)

objective-c thread-safety nsmutablearray ios

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

Swift 过滤器嵌套数组

我有一个NSMutableArray它自己里面有很多数组。在所有索引处的每个数组中,它们进一步具有下面给出的类的自定义对象。

Class User:NSObject{
    var name = ""
    var userName = ""
    var email = ""
    var age = 0
    var gender = ""
    var 
}
Run Code Online (Sandbox Code Playgroud)

我想根据两个对象过滤这个嵌套数组。例如,如果用户在 searchBar 中键入一些文本并检查该嵌套数组中的文本,如果该文本与名称或用户名或两者匹配。

nsmutablearray ios swift

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

无法将“Any”类型的值快速转换为指定类型

我创建了一个如下所示的数组

var childControllers = NSArray()
childControllers = NSArray(objects: OBDPage1, OBDPage2, OBDPage3, OBDPage4)
self.loadScrollView(page: 0)// calling method
Run Code Online (Sandbox Code Playgroud)

现在我想使用如下所示的数组对象

func loadScrollView(page: Int){ // method
    if page >= childControllers.count {
        return
    }
    // replace the placeholder if necessary
    let controller: OBDPage1ViewController? = childControllers[page]
}
Run Code Online (Sandbox Code Playgroud)

但我遇到了以下错误

Swift-CarAssist/Swift-CarAssist/OBDCarMonitorDeatilViewController.swift:90:67:无法将类型“Any”的值转换为指定类型“OBDPage1ViewController”?

任何人都可以告诉我我哪里出了问题,因为我是斯威夫特的新手。

提前致谢。普里扬卡

arrays nsmutablearray swift

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

集合 &lt;__NSArrayM&gt; 在枚举时发生了变异。

Application Specific Information:
*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x17204b070> was mutated while being enumerated.'
Last Exception Backtrace:
0   CoreFoundation                      0x0000000186acefe0 __exceptionPreprocess + 124
1   libobjc.A.dylib                     0x0000000185530538 objc_exception_throw + 56
2   CoreFoundation                      0x0000000186acea30 __NSFastEnumerationMutationHandler + 128
3   UIKit                               0x000000018cc22f04 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) clearGestureRecognizers:] + 220
4   UIKit                               0x000000018cc22d78 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) setGestureRecognizers] + 88
5   UIKit                               0x000000018d1d1d38 -[UIGestureRecognizerTarget _sendActionWithGestureRecognizer:] + 64
6   UIKit                               0x000000018d1d556c _UIGestureRecognizerSendTargetActions + 124
7   UIKit                               0x000000018cd8f470 _UIGestureRecognizerSendActions + 252
8   UIKit                               0x000000018cc31380 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] …
Run Code Online (Sandbox Code Playgroud)

arrays crash objective-c nsmutablearray ios

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

如何检查数组中是否存在重复值?

var arrEmails = NSMutableArray()
arrEmails = ["a.a@gmail.com", "a.a1@gmail.com", "a.a@gmail.com", "b.b@gmail.com", "c.c@gmail.com", "a.a1@gmail.com"]
Run Code Online (Sandbox Code Playgroud)

上面是我的数组,我想检查是否有任何重复的值。为此,我写了下面的代码。

let set = NSCountedSet.init(array: arrEmails as! [Any])
        var duplicates: Int = 0

        for var object in set {
            if set.count(for: object) > 1 {
                duplicates = duplicates+1
            }
        }
Run Code Online (Sandbox Code Playgroud)

但在上面的代码中,如果数组包含如下值,则返回重复值 1。

arrEmails = ["a.a@gmail.com", "", "", "b.b@gmail.com", "", ""]
Run Code Online (Sandbox Code Playgroud)

我不想删除重复值,我只想检查数组中重复值的数量。怎么查?请帮帮我。

duplicates nsmutablearray ios swift

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