标签: nsarray


将NSDictionary添加到NSArray每次都会复制第一个NSDictionary

所以我JSON从一个存储在NSArray被叫中的Web服务中提取了一些数据_infoFromJSON.每个数组元素_infoFromJSON基本上都有一个键/值对的字典.目标是将它们添加到myVehicleObject其中NSMutableArray

for (NSDictionary* myDictionary in _infoFromJSON) {
    myVehicleObject *vehicleInMembersProfile;
    vehicleInMembersProfile = [[myVehicleObject alloc] init];
    vehicleInMembersProfile.make = [[_infoFromJSON objectAtIndex:carCount] objectForKey:@"make"];
    vehicleInMembersProfile.carName = [[_infoFromJSON objectAtIndex:carCount] objectForKey:@"nickname"];
    vehicleInMembersProfile.year = [[_infoFromJSON objectAtIndex:carCount] objectForKey:@"year"];
    carCount ++;
    [self.myVehicleObject addObject:vehicleInMembersProfile] ;
};
Run Code Online (Sandbox Code Playgroud)

使用上面的代码我有点实现它,但它不断添加相同的第一个字典myVehicleObject,所以它插入相同的NSDictionary4次过去我使用过:

[self.myVehicleObject addObject:[vehicleInMembersProfile copy]] ;
Run Code Online (Sandbox Code Playgroud)

当我这样做时,它抛出以下异常:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[myVehicleObject copyWithZone:]: unrecognized selector sent to instance 0xab4e130'
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?谢谢!

更新请求的示例JSON:

{
        color = SILVER; …
Run Code Online (Sandbox Code Playgroud)

json objective-c nsdictionary nsarray

0
推荐指数
1
解决办法
73
查看次数

通过使用带有ID的已排序NSArray加速循环


我有一个循环通过相当大量的对象的foor循环(目前4000以上,但可能是双倍增长.

我试图加快循环,我能够使用autoreleasepool释放内存并避免应用程序崩溃但是就速度而言,周期很慢.
有人建议我使用有序数组,但我对编程很陌生,所以我有点迷失.有人可以分享一些方向吗?

"Sede"中的对象具有渐进ID

这是我的代码:

NSArray *sedi = [Sede sedeArray];
for (Sede *sedeTmp in sedi)
        {
            @autoreleasepool {
                if (sedeTmp.idSede == idSede)
                {
                    sede = sedeTmp;
                    break;
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

这是我的完整代码:

+ (void)importData:(NSDictionary *)data
{
    NSArray *info = data[@"Info"];
    if (info != (id)[NSNull null])
    {

    }

    NSMutableArray *utenti = [NSMutableArray arrayWithArray:[Utente utenteArray]];
    NSMutableArray *utentiNew = [[NSMutableArray alloc] init];
    for (NSDictionary *utenteWS in data[@"Utenti"])
    {
        NSInteger stato = [(NSNumber *)[NSString decrypt:utenteWS[@"Stato"]] integerValue];
        NSInteger idUtente = [(NSNumber *)[NSString decrypt:utenteWS[@"IDUtente"]] integerValue];
        Utente *utente …
Run Code Online (Sandbox Code Playgroud)

performance for-loop objective-c nsarray ios

0
推荐指数
1
解决办法
190
查看次数

无法删除NSMutableArray中的所有对象

出于某种原因,我在运行应用程序时遇到此错误:

[__NSArrayI removeAllObjects]: unrecognized selector sent to instance

我在.m中设置了NSMutableArray,如下所示:

@implementation ChooseViewController
{
    NSMutableArray *trackName;
}
Run Code Online (Sandbox Code Playgroud)

并填充它像这样:

trackName = [JSON valueForKeyPath:@"results.trackName"];
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此代码时,它给了我错误:

[trackName removeAllObjects];
Run Code Online (Sandbox Code Playgroud)

其他一切正常,trackName中的数据也可以.当我运行这段代码时,它只是搞乱了.提到的唯一的其他时间trackName数组是表视图计数:

return [trackName count];

你觉得有什么不对吗?我相信问题在于它认为它是一个NSArray,但它们都不是.

objective-c nsmutablearray nsarray ios

0
推荐指数
1
解决办法
811
查看次数

NSArray 分配和初始化

我对初始化有点困惑NSArray。令人困惑的是,我们有不同的init方法来初始化它,如果我只是初始化它而不给出任何大小和任何对象,编译器如何知道RAM. init 方法背后的逻辑/差异是什么?有人可以简单解释一下吗?

编辑:

NSArray *sortedArray = [[NSArray alloc] init];
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc]   initWithKey:@"quota" ascending:NO];
NSArray *sortDescriptors = [NSArray arrayWithObject:descriptor];
//How is that possible to modifying to immutable object
sortedArray = [sortedContainers sortedArrayUsingDescriptors:sortDescriptors];
Run Code Online (Sandbox Code Playgroud)

我知道NSArrayNSMutableArray之间的差异,并且我不是在寻找差异。我只是想知道该代码如何编译/执行而不会出现错误。

objective-c nsarray ios

0
推荐指数
1
解决办法
4002
查看次数

Swift:将字符串转换为 NSMutableArray

我想将以下字符串转换为 NSMuableArray。

var components: String = "library/book/science"
Run Code Online (Sandbox Code Playgroud)

例如,我想在 Swift 中执行以下目标 c 代码

NSArray *componentsArray = [@"library/book/science" componentsSeparatedByString:@"/"];

NSMutableArray *componentsMutableArray = [[NSMutableArray alloc] initWithArray:componentsArray];
[componentsMutableArray addObject:@"astronomy"];
Run Code Online (Sandbox Code Playgroud)

objective-c nsmutablearray nsarray ios swift

0
推荐指数
1
解决办法
3194
查看次数

将 NSARRAY 转换为 NSDictionary 以作为 Json 序列化的结果 swift4 Xcode 9

我想将 a 转换NSArray为 a NSDictionary,然后选择 中的键和值,NSDictionary以便稍后能够NSDictionary通过使用其中的键将数据从对象添加到对象中。

我怎样才能以最聪明的方式做到这一点?

这是我到目前为止所拥有的:

func makeCall(completion: result: NSDictionary or Dictionary){
    let json = try JSONSerialization.jsonObject(with: data!, options:  JSONSerialization.ReadingOptions(rawValue: 0)) as? NSDictionary
    let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? Array<Any>
}
Run Code Online (Sandbox Code Playgroud)

这两个 JSON 文件看起来几乎相同。不同之处在于 var 类型,因此您将获得数组样式的键和值。我们需要它在字典样式中通过它们的键来获取值。

converter nsdictionary nsarray swift

0
推荐指数
1
解决办法
3966
查看次数

如何在 Swift 中替换多元素 NSArray 的单个变量

我正在努力更新结构创建的数组中的单个变量。

struct CurrentPolicyItems {
    var id:Int
    var currentInsured:String
    var currentPremium:String
    var currentXDate:String
    var typeID:Int
    var productID:Int
    var buildingID:Int
    var noteID:Int
    var isUsed:Int
    var isTemp:Int
}
struct CurrentPolicyTemp {
    static var array = [CurrentPolicyItems]()
}
Run Code Online (Sandbox Code Playgroud)

当我关闭一个类时,我需要将所有 var“isTemp”从 1 更改为 0。并非所有元素都被使用,因此我需要在任何更新之前过滤它们。我相信我已经很接近了,只是无法得到最后一点。

我努力了:

    if let items = CurrentPolicyTemp.array.firstIndex( where: { $0.isTemp == 1}) {
    CurrentPolicyTemp.array[items].isTemp = 0
    }
Run Code Online (Sandbox Code Playgroud)

然而,众所周知,这只会更新单个元素。我尝试过 .filter,但遇到了“item is immutable”错误。

请帮助。

arrays nsarray ios swift

0
推荐指数
1
解决办法
266
查看次数

如何解决泄漏问题(iPhone)?

我正在使用仪器工具来查找代码中的泄漏.

工具指示下线100%泄漏.

NSArray*subviews = [[cell subviews] copy];

如何在上面的代码中解决泄漏问题?

提前致谢.

iphone xcode memory-leaks objective-c nsarray

-1
推荐指数
1
解决办法
68
查看次数

使用文件中的数据填充NSArray

我被卡住了!我不能让这个工作.

这就是我打算做的事情:我在.txt文件中有一些数据,我最终想用NSArray填充!这就是我所做的:

NSString *urlString = [[NSBundle mainBundle] pathForResource:@"intsAndsStrings" ofType:@"txt"];
NSArray *objectsArray = [[NSArray alloc]initWithContentsOfFile:urlString];
NSLog(@"objectsArray is: %@", objectsArray);
Run Code Online (Sandbox Code Playgroud)

我从最后一行得到的唯一输出是;

    objectsArray is: (null)
Run Code Online (Sandbox Code Playgroud)

txtFile中的对象用逗号(,)分隔.

请帮我!

objective-c nsarray ios

-1
推荐指数
1
解决办法
841
查看次数