gpt4 book ai didi

ios - 获取可变字典数组然后在 Objective-C 中添加对象

转载 作者:行者123 更新时间:2023-11-29 01:25:24 26 4
gpt4 key购买 nike

我正在将两个不同的应用程序从 Swift 翻译为 Objective-C,我所关心的一件事是可变字典数组的全局属性。

这是语法和 Swift 以及添加对象的代码,

第一个应用(将地点添加到 map 应用的字典中)

在类(class)中名列前茅

var places = [Dictionary<String, String>()] 

添加对象

places.append(["name":"Taj Mahal","lat":"27.175277","lon":"78.042128"])

第二个应用(检查解析时的用户ID是否正在关注另一个用户)

在类(class)中名列前茅

var isFollowing = ["":false]

添加对象

query.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in

if let objects = objects {

if objects.count > 0 {

self.isFollowing[user.objectId!] = true

} else {

self.isFollowing[user.objectId!] = false

}
}

要在 Objective-C 中执行此操作,是否需要使用 initWithDictionary 方法设置 NSObject 子类?

有什么建议吗?提前致谢!

最佳答案

不,您不需要创建自定义类来执行此操作。

通过在 SomeClass.m 文件中定义它来创建类级数组:

static NSMutableArray *_places = nil;

使用单例模式来初始化和检索它:

+ (NSMutableArray *)places
{
if (!_places)
_places = [NSMutableArray new];
return _places;
}

像这样添加:

NSMutableArray *places = [SomeClass places];
[places addObject: @{
@"name" : @"Taj Mahal",
@"lat" : @(27.175277), // Note: NSNumber, not NSString
@"lon" : @(78.042128) // ditto
}];

从外观上看,第二个应用程序不需要全局数组;只是一个包含用户 ID 的 @property:

@interface SomeClass : NSObject
@property NSUInteger followingUserId;
@end

然后根据需要设置/比较用户 ID:

NSUInteger incomingUserId = ...;
if (incomingUserId != self.followingUserId) {
// Set new user-id?
self.followingUserId = incomingUserId;
}

关于ios - 获取可变字典数组然后在 Objective-C 中添加对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34075259/

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