gpt4 book ai didi

iOS - 无法将 NSString 对象添加到 NSMutableSet

转载 作者:行者123 更新时间:2023-11-28 22:13:01 25 4
gpt4 key购买 nike

出于某种原因,NSString 对象不会进入 NSMutableSet

该集合保持为空 - 计数保持为 0 并且永远不会调用 firstInHandler

我什么都试过了……!

如果有人知道为什么,我将不胜感激


VCKeySet.h

#import <Foundation/Foundation.h>

@interface VCKeySet : NSObject
{
void (^firstInHandler)();
void (^lastOutHandler)();
}

@property (atomic, readonly, strong) NSMutableSet* keys;

- (id) initWithFirstInHandler:(void(^)()) firstInHandler_ withLastOutHandler:(void(^)()) lastOutHandler_;

- (void) add:(NSString*) key_;
- (void) remove: (NSString*) key_;
- (BOOL) has: (NSString*) key;

@end

VCKeySet.m

#import "VCKeySet.h"

@implementation VCKeySet

@synthesize keys;

- (id) initWithFirstInHandler: (void(^)()) firstInHandler_ withLastOutHandler: (void(^)()) lastOutHandler_
{
if(self=[self init])
{
firstInHandler = firstInHandler_;
lastOutHandler = lastOutHandler_;
}

return self;
}

- (void) add:(NSString*) key_
{
for(NSString* key in self.keys)
{
if([key isEqualToString:key_])
{
return;
}
}

[self.keys addObject:key_];

if([self.keys count] == 1)
{
firstInHandler();
}
}

- (void) remove: (NSString*) key_
{
for(NSString* key in keys)
{
if([key isEqualToString:key_])
{
[keys removeObject:key];

if([keys count] == 0)
{
lastOutHandler();
}
}
}
}

- (BOOL) has: (NSString*) key_
{
for(NSString* key in keys)
{
if([key isEqualToString:key_])
{
return YES;
}
}

return NO;
}

@end

这是我尝试向集合中添加 key 的方法

VCKeySet* lock = [[VCKeySet alloc] initWithFirstInHandler:^()
{
NSLog(@"Adding UI lock");
[application beginIgnoringInteractionEvents];
}
withLastOutHandler:^()
{
NSLog(@"Removing UI lock");
[application endIgnoringInteractionEvents];
}];

[lock add:@"InitialiseApp"];

谢谢

最佳答案

问题是,您永远不会分配和初始化您的集合。

重构您的 add: 方法,使其看起来像这样:

- (void) add:(NSString*) key_ {
if (!self.keys) {
_keys = [[NSMutableSet alloc] init];
}

[self.keys addObject:key_];

if([self.keys count] == 1) {
firstInHandler();
}
}

关于iOS - 无法将 NSString 对象添加到 NSMutableSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22424009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com