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

时间:2015-12-03 20:11:18

标签: ios objective-c nsmutablearray swift2 nsdictionary

我正在将两个不同的应用程序从Swift转换为Objective-C,而我所挂断的一件事是一系列可变字典的全局属性。

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

第一个应用(为地图应用添加字典)

在课堂上声明

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

添加的对象

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

第二个应用(检查解析时的用户ID是否跟随另一个用户)

在课堂上声明

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子类?

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

1 个答案:

答案 0 :(得分:1)

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

通过在iex> inspect 0b11111111_11111111, base: :binary, pretty: true "0b11111111_11111111" iex> inspect 999_999, base: :decimal, pretty: true "999_999" iex> inspect 0o7777_7777, base: :octal, pretty: true "0o7777_7777" iex> inspect 0xFF_FF, base: :hex, pretty: true "0xFF_FF" 文件中定义它来创建类级数组:

SomeClass.m

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

static NSMutableArray *_places = nil;

像这样添加:

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

第二个应用程序看起来不需要全局数组;只需一个包含用户ID的NSMutableArray *places = [SomeClass places]; [places addObject: @{ @"name" : @"Taj Mahal", @"lat" : @(27.175277), // Note: NSNumber, not NSString @"lon" : @(78.042128) // ditto }];

@property

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

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