gpt4 book ai didi

ios - 如何解析 NSArray 以仅获取每个数组条目的一部分?

转载 作者:行者123 更新时间:2023-11-29 10:40:52 25 4
gpt4 key购买 nike

这是我的数组,它是我后端的响应

NSArray  *myArray = [NSArray arrayWithObjects:@"  userId: 123, online: 0, subscriptionState: none",@"  userId: 124, online: 0, subscriptionState: none",@"  userId: 125, online: 1, subscriptionState: none",nil];
NSLog(@"this is an example array=%@", myArray);]

日志:

this is an example array=(
" userId: 123, online: 0, subscriptionState: none",
" userId: 124, online: 0, subscriptionState: none",
" userId: 125, online: 1, subscriptionState: none"
)

我只想从此数组中提取用户 ID 号,以创建一个新数组,该数组将具有这样的日志输出

this is the new array=(
"123",
"124",
"125"
)

最佳答案

尝试创建一个新的 Class User:NSObject 并使用用户数组而不是尝试解析这些东西。如果您要为每个用户跟踪项目,那么您确实需要一个用户类来包含它。这将允许您使用用户对象而不是您解析出的字符串。这为您提供了更多的功能、灵 active 和更清晰的代码。

用户.h

@interface User : NSObject

@property (nonatomic) int userId;
@property (nonatomic) BOOL isOnline;
@property (nonatomic) int subscriptionState;

然后在你的类里面:

User *user1 = [User new];
user1.userId = 123;
user1.isOnline = NO;
user1.subscriptionState = 0;
...

NSArray *usersArray = [NSArray arrayWithObjects:user1,user2,user3,nil];
for (User *curUser in usersArray)
{
NSLog(@"User ID: %d", curUser.userId);
}

现在您可以打印出他们是否在线,他们的 subscriptionState 是什么,还可以非常轻松地向用户更新。以前,如果用户更改了他们的 subscriptionState 或者他们上线了,您将不得不为用户手动更新整个 NSString。例如,如果 User1 上线,则必须将其重置为:@"userId: 123, online: 1, subscriptionState: none"。这是非常困惑和大量的工作。现在你可以这样做:

 user1 = [usersArray objectAtIndex:0];
user1.isOnline = YES;

更新:

我注意到这是从后端返回的。请注意,如果您无法修复后端,这是使其与后端返回一起工作的方法。除非迫不得已,否则强烈不建议使用这种方法。

NSArray *wordArray = [userString componentsSeparatedByString:@","];
NSString *userId = [[[wordArray objectAtIndex:0] componentsSeparatedByString:@":"] objectAtIndex:1];
NSString *online = [[[wordArray objectAtIndex:1] componentsSeparatedByString:@":"] objectAtIndex:1];
NSString *subscriptionStatus = [[[wordArray objectAtIndex:2] componentsSeparatedByString:@":"] objectAtIndex:1];

关于ios - 如何解析 NSArray 以仅获取每个数组条目的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24635783/

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