我一直试图解决这个崩溃将近一个星期.应用程序崩溃,没有任何异常或堆栈跟踪.在僵尸模式下运行仪器时,应用程序不会以任何方式崩溃.
我有一个在不同的线程上调用的方法.修复崩溃的解决方案正在取代
[self.mutableArray removeAllObjects];
Run Code Online (Sandbox Code Playgroud)
同
dispatch_async(dispatch_get_main_queue(), ^{
[self.searchResult removeAllObjects];
});
Run Code Online (Sandbox Code Playgroud)
我认为这可能是一个时间问题,所以我尝试同步它,但它仍然崩溃:
@synchronized(self)
{
[self.searchResult removeAllObjects];
}
Run Code Online (Sandbox Code Playgroud)
这是代码
- (void)populateItems
{
// Cancel if already exists
[self.searchThread cancel];
self.searchThread = [[NSThread alloc] initWithTarget:self
selector:@selector(populateItemsinBackground)
object:nil];
[self.searchThread start];
}
- (void)populateItemsinBackground
{
@autoreleasepool
{
if ([[NSThread currentThread] isCancelled])
[NSThread exit];
[self.mutableArray removeAllObjects];
// Populate data here into mutable array
for (loop here)
{
if ([[NSThread currentThread] isCancelled])
[NSThread exit];
// Add items to mutableArray
}
}
}
Run Code Online (Sandbox Code Playgroud)
NSMutableArray的这个问题不是线程安全的吗?
在Master-Detail应用程序中,我想显示一个标题为5个部分的TableView:
所以我在Xcode 5.0.2中创建了一个空白的Master-Detail应用程序,然后在它的MasterViewController.m(这是一个UITableViewController)中我正在尝试实现该方法:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return _titles[section];
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何初始化NSArray _titles?
我正在尝试使用MasterViewController.m:
#import "MasterViewController.h"
#import "DetailViewController.h"
static NSArray *_titles_1 = @[
@"Your Move",
@"Their Move",
@"Won Games",
@"Lost Games",
@"Options"
];
@interface MasterViewController () {
NSMutableArray *_games;
NSArray *_titles_2 = @[
@"Your Move",
@"Their Move",
@"Won Games",
@"Lost Games",
@"Options"
];
}
@end
@implementation MasterViewController
- (void)awakeFromNib
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
self.clearsSelectionOnViewWillAppear = NO;
self.preferredContentSize = CGSizeMake(320.0, …Run Code Online (Sandbox Code Playgroud) 有没有一种有效的方法来添加一个对象来开始NSMutableArray?我正在寻找一个好的双端队列objective C.
我需要在Objective-C中创建一个可变的二维数组.
例如,我有:
NSMutableArray *sections;
NSMutableArray *rows;
Run Code Online (Sandbox Code Playgroud)
每个项目都sections包含一个数组rows.rows是一个包含对象的数组.
我想做这样的事情:
[ sections[i] addObject: objectToAdd]; //I want to add a new row
Run Code Online (Sandbox Code Playgroud)
顺序如下:第0节,行:obj1,obj2,obj3第1节,行:obj4,obj5,obj6,obj 7 ...
有没有办法在Objective-C中做到这一点?
cocoa cocoa-touch objective-c multidimensional-array nsmutablearray
我有一个NSMutableArray存储用于Box2d物理模拟的鼠标接口.当使用多个手指播放时,我会得到例外陈述
NSArray在被枚举时发生了变异
我知道这是因为我正在从数组中删除对象,同时也通过它枚举,使枚举无效.
我想知道的是,解决这个问题的最佳策略是什么?我在网上看到了一些解决方案:@synchronized在枚举或将触摸关节放入垃圾数组之前复制数组以便以后删除(我不确定是否可行,因为我需要在移除后直接从数组中删除鼠标点它来自世界).
我不知道该如何解决这个问题.我有一个NSMutableArray(addList),它包含要添加到我的数据源NSMutableArray的所有项目.
我现在想检查从addList数组添加的对象是否已经存在于数据源数组中.如果不存在则添加项目,如果存在则忽略.
这两个对象都有一个名为iName的字符串变量,我想比较它.
这是我的代码片段
-(void)doneClicked{
for (Item *item in addList){
/*
Here i want to loop through the datasource array
*/
for(Item *existingItem in appDelegate.list){
if([existingItem.iName isEqualToString:item.iName]){
// Do not add
}
else{
[appDelegate insertItem:item];
}
}
}
Run Code Online (Sandbox Code Playgroud)
但即使它存在,我也会发现要添加的项目.
我究竟做错了什么 ?
我有一个字符串列表NSMutableArray,我希望在我的表视图中显示它们之前将它们按字母顺序排序.
我怎样才能做到这一点?
我有三个NSMutableArray包含根据不同的标准添加到列表中的名称.
这是我的数组伪代码:
NSMutableArray *array1 = [@"Jack", @"John", @"Daniel", @"Lisa"];
NSMutableArray *array2 = [@"Jack", @"Bryan", @"Barney", @"Lisa",@"Penelope",@"Angelica"];
NSMutableArray *array3 = [@"Jack", @"Jerome", @"Dan", @"Lindsay", @"Lisa"];
Run Code Online (Sandbox Code Playgroud)
我想找到第四个数组,其中包括这三个数组的交集.在这种情况下,例如它将是:
NSMutableArray *array4 = [@"Jack",@"Lisa"];
Run Code Online (Sandbox Code Playgroud)
因为所有三个阵列都有jack和lisa作为元素.有没有办法简单地这样做?
所以这是一个关于NSMutableArray自定义对象排序的最佳方法的基本问题.
我有一个NSMutableArray自定义对象,每个对象都有一个NSString并且NSDate一起去.我需要通过最新的对象(最新的NSDate)对数组进行排序,我很确定NSDate compare: NSDate如果这只是一个数组,我可以简单地使用NSDate,但是因为我需要对所有对象进行排序而不仅仅是日期,所以我我不确定我是否可以使用该方法.
在伪代码方面,我需要:查看单个对象,确定当前对象是否NSDate是数组中的下一个最大对象,如果是,则移动对象,而不仅仅是日期.
再次,这是我甚至犹豫不决的问题,因为它是如此基本,但我不想写一些非常低效的方法,如果有一个预先存在的类方法基本上做我想要的,搜索一个对象的数组子属性并根据子属性对对象进行排序.
谢谢你的帮助.
nsmutablearray ×10
objective-c ×7
ios ×6
iphone ×4
cocoa-touch ×3
cocoa ×2
sorting ×2
collections ×1
deque ×1
intersection ×1
macos ×1
nsarray ×1
nsdate ×1