我试图根据词典中的特定键来删除NSArray的NSArray.我看到的是这样的:
NSDictionary *person1 = [NSDictionary dictionaryWithObjectsAndKeys:@"John", @"firstName", @"Smith", "lastName", @"7898", @"employeeID"];
NSDictionary *person2 = [NSDictionary dictionaryWithObjectsAndKeys:@"Eric", @"firstName", @"Johnson", "lastName", @"1718" @"employeeID"];
NSDictionary *person3 = [NSDictionary dictionaryWithObjectsAndKeys:@"John", @"firstName", @"Smith", "lastName", @"1153", @"employeeID"];
NSMutableArray *personArray = [NSArray arrayWithObjects:person1, person2, person3, nil];
// insert some code to de-dupe personArray based SOLELY on the firstName and lastName keys
Run Code Online (Sandbox Code Playgroud)
请注意,有两名员工姓名相同但ID不同.我想做的只是回到一个只有person1和person2的新数组,因为person3具有相同的数据 - 我只是不关心这个特定问题中的"employeeID"值.
有任何想法吗?谢谢!
-Matt
我有一个NSMutableArray,我想添加字符串.在将字符串添加到数组之前,我需要检查数组中是否已存在该字符串.无论如何知道这样做的好方法吗?
谢谢!
我已经制作了一个示例项目来重现这个包含两个视图的问题:
根标题:
#import <UIKit/UIKit.h>
#import "view2.h"
@interface RootViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>{
view2 *secondView;
UITableView *table;
NSArray *array;
}
@property (nonatomic, retain) view2 *secondView;
@property (nonatomic, retain) IBOutlet UITableView *table;
@property (nonatomic, retain) NSArray *array;
@end
Run Code Online (Sandbox Code Playgroud)
根主要:
#import "RootViewController.h"
@implementation RootViewController
@synthesize table, array, secondView;
- (void)viewDidLoad
{
[super viewDidLoad];
if(self.array == nil){
self.array = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", nil];
}
}
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
}
- …Run Code Online (Sandbox Code Playgroud) 我有一个带有一些NSNumber的NSMutableArray:
{1, 2, 3, 3, 2, 1, 6, 2}
Run Code Online (Sandbox Code Playgroud)
我想知道列表中出现的每个数字的出现次数.
Ex :
1 = 2
2 = 3
3 = 2
6 = 1
Run Code Online (Sandbox Code Playgroud) 如果我在NSArray中有以下3个类的对象,那么将数组元素分配给适当对象的最佳方法是什么?
@interface Simple : NSObject
@interface Intermediate : Simple
@interface Advanced : Simple
Run Code Online (Sandbox Code Playgroud)
我想遍历NSArray,如果数组的第二个元素是Intermediate,第五个元素是Advanced,我想分别将它们分配给Intermediate和Advanced的变量.这允许我调用派生类中未在基类中定义的方法.
让我知道,如果有一个更好的解决方案,而不是让NSArray包含不同的对象(我仍然有兴趣知道原始问题的答案)!
我有一个对象数组
我想复制数组及其所有内容
"对象"实现NSCopying
我以为这样做
NSArray *copiedArray = [array copy];
Run Code Online (Sandbox Code Playgroud)
会在其中包含的对象中触发copyWithZone.
不幸的是......
如何才能做到这一点?
我有3个对象可能以随机顺序初始化.
所以,如果对象"objectOne",objectTwo","objectThree"按此顺序初始化
myArray = [NSArray arrayWithObjects:objectOne,objectTwo,objectThree nil];
Run Code Online (Sandbox Code Playgroud)
所有对象都没有问题进入数组,但在我的情况下objectOne,objectTwo可能是nil而objectThree可能不是nil,在这种情况下我希望myArray返回(count)1.
如果objectOne为nil但objectTwo和objectThree不为nil,我希望我的数组返回(count)2.
在最后两种情况下,我的数组总是返回nil.最好的办法是什么?
我正在尝试用数组中的一些数据填充表视图.数组已填充,但是当我运行应用程序时,我收到此错误:原因:' - [__ NSCFArray length]:无法识别的选择器发送到实例
我搜索了类似的问题,但没有人适合我.我不使用lenght函数,我的应用程序崩溃:cell.textLabel.text = [self.currentDate objectAtIndex:indexPath.row];
quizViewController.m
- (void)passDataForward
{
ScoreViewController *secondViewController = [[UIStoryboard storyboardWithName:@"Storyboard" bundle:[NSBundle mainBundle]]instantiateViewControllerWithIdentifier:@"score"];
secondViewController.data =self.scoreLabel.text;
secondViewController.delegate = self;
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
[highScores insertObject:self.scoreLabel.text atIndex:highScores.count];
NSData *currentDate =[NSDate date];
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd.MM.YYYY HH:mm:ss"];
NSString *dateString =[dateFormatter stringFromDate:currentDate];
[data insertObject:dateString atIndex:data.count];
NSMutableArray *scorearray = [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] arrayForKey:@"high_scoresarray"]];
NSMutableArray *dataArray = [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] arrayForKey:@"data_score"]];
[scorearray addObject:highScores];
[dataArray addObject:data];
[[NSUserDefaults standardUserDefaults] setObject:scorearray forKey:@"high_scoresarray"];
[[NSUserDefaults standardUserDefaults] setObject:dataArray forKey:@"data_score"];
secondViewController.test=[NSMutableArray …Run Code Online (Sandbox Code Playgroud) 我正在创建一个包含单独帖子的应用程序(类似于Instagram).每个帖子都是一个位于一个大数组中的字典.在每个字典中,它们是一个NSDate,我想按照从最新到最旧的顺序对字典进行排序.
我已经阅读了类似的问题,但他们是客观的C.我有一种感觉NSSortDescriptor是一种有用的方法,但我不确定如何在这种情况下使用它.
任何帮助都会很棒,
谢谢
在我的应用程序中,我想实现下拉刷新.因此,当滚动视图向下滚动其加载更多数据.现在第一次加载页面时我将数据保存在videoArray数组中,当向下滚动时我得到了videoArray2数组中的数据,那么如何将videoArray2的值添加到videoArray中呢?两者都是nsmuttablearray.
这是我的代码:
var videoArray : NSMutableArray = NSMutableArray()
var videoArray2 : NSMutableArray = NSMutableArray()
Run Code Online (Sandbox Code Playgroud)
我第一次在这个数组中存储了值
self.videoArray = (response.result.value)?.valueForKey("posts") as! NSMutableArray
Run Code Online (Sandbox Code Playgroud)
第二次我在这个数组中存储了值
self.videoArray2 = (response.result.value)?.valueForKey("posts") as! NSMutableArray
Run Code Online (Sandbox Code Playgroud)
这就是我试图追加的方式
for enumerator in self.videoArray2
{
self.videoArray.addObject(enumerator)
}
Run Code Online (Sandbox Code Playgroud)
但它的投掷错误就像
***由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:' - [__ NSCFArray insertObject:atIndex:]:发送到immutable对象的mutating方法'
那我怎么解决这个问题呢?
nsarray ×10
objective-c ×8
ios ×6
iphone ×3
nsdictionary ×2
swift ×2
xcode ×2
cocoa ×1
duplicates ×1
memory-leaks ×1
nscopying ×1
nsdate ×1
nsstring ×1