我正在尝试解决内存泄漏,但我找不到任何解决方案.
仪器表示此方法存在泄漏:
- (void)refreshData {
Sn0werSp33dAppDelegate *appDelegate = [[Sn0werSp33dAppDelegate alloc] init];
NSFetchRequest *coreDataNewsFetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"News" inManagedObjectContext:managedObjectContext];
[coreDataNewsFetchRequest setEntity:entity];
self.managedObjectContext = appDelegate.managedObjectContext;
self.newsArray = [[managedObjectContext executeFetchRequest:coreDataNewsFetchRequest error:nil] mutableCopy];//Intruments says that here is the memory leak :(
[appDelegate release];
[coreDataNewsFetchRequest release];
[entity release];
}
Run Code Online (Sandbox Code Playgroud)
newsArray 在我的.h中声明为NSMutableArray,它有一个属性:
@property (nonatomic, retain) NSMutableArray *newsArray;
我尝试了很多东西,但在任何时候,事情都没有用.我正在使用iPhone SDK 4.2.1和Instruments 2.7运行XCode 3.2.5.
如果我创建一个最多可能有2 ^ 16个元素的NSMutableArray,但是大部分都是空的,我会浪费空间还是将NSMutableArray实现为稀疏数组?
我的代码:
NSArray *array = //objects here
NSMutableArray *mutarray = [[NSMutableArray alloc] init];
for (NSString *s in array)
{
NSRange ran = [s rangeOfString:@"abc"];
if (ran.location != NSNotFound)
{
int inde = [array indexOfObject:s];
[mutarray setValue:[NSNumber numberWithInt:inde] forKey:s];
}
}
NSLog (@"mutarray: %@", mutarray);
Run Code Online (Sandbox Code Playgroud)
我尝试过NSMutableDictionary,但内容是无序的,所以我更喜欢NSMutableArray有序地存储值和键.但NSLog的输出什么也没有显示,到底是什么?NSMutableDictionary的输出显示了四个发现.
编辑:
我甚至在NSLog前面尝试过这段代码,但没有显示:
[mutarray setValue:@"aha" forKey:@"jaha"];
Run Code Online (Sandbox Code Playgroud)
编辑:伙计们,谢谢你的回答!现在我明白了.但问题是我将数字存储为值和字符串作为键.我有一个无序的NSMutableDictionary.我还没弄明白我应该怎么订购它.我有我使用的代码,但没有正确编写:
NSInteger intSort(id num1, id num2, void *context)
{
int v1 = [num1 intValue];
int v2 = [num2 intValue];
if (v1 < v2)
return NSOrderedAscending;
else if (v1 > v2)
return …Run Code Online (Sandbox Code Playgroud) 我正在添加一个对象"m" NSMutableArray如下:
[m setObject:a forKey:@"a"];
[m setObject:b forKey:@"b"];
[m setObject:c forKey:@"c"];
[m setObject:d forKey:@"d"];
[myArray addObject:m];
[m release];
Run Code Online (Sandbox Code Playgroud)
对于一个对象,它可以正常工作,但是当添加另一个对象时,对myArray中的所有对象重复相同的值.
怎么避免这个?
请帮忙.
谢谢.
当我将UIColor对象添加到数组中时,我收到了Thread1: Program received signal: “SIGBRT”此错误.
NSMutableArray *array =[[NSMutableArray alloc] init];
UIColor *color1,*color2, *color3,*color4;
color1 = [UIColor blueColor];
color2 = [UIColor colorWithHue:0.5
saturation:0.1
brightness:0.2
alpha:1.0];
color3 = color2;
[array addObject:color1];//No Problem
[array addObject:color2];//No Problem
[array addObject:color3];//No Problem
[array addObject:color4];//Problem is here.....
Run Code Online (Sandbox Code Playgroud)
当我将前三个对象添加到数组中时没有问题.但是当我添加最后一个对象时,我得到错误.这段代码有什么问题?我应该像前三个对象一样将任何东西分配给第四个对象(color4)吗?有必要吗?为什么?...
请举例说明.提前致谢.
我有一个NSMutableArray在编辑TableView时经常被编辑.我想要做的是运行检查并查看TableView中的行是否与NSMutableArray中的任何数字匹配,如果相同,则执行操作.所以,在TableView代码中我有:
if([thearray containsObject:indexPath.row] {
//perform action here
}
Run Code Online (Sandbox Code Playgroud)
但是我一直收到错误:
Incompatible integer to pointer conversion sending 'NSInteger' (aka 'int') to parameter of type 'id';
Run Code Online (Sandbox Code Playgroud)
我做错了什么,怎么能这样做?
我需要将一个int存储在一个数组中,然后我尝试了这种方式,将int转换为一个int,NSNumber但integer最终结果为136894816 ...有人可以帮我吗?
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:5];
NSNumber *num = [NSNumber numberWithInt:10];
[array insertObject:num atIndex:0];
int integer = [array objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud) First_mutableArray是1,2,3,4,5,6
Second_MutableArray的2,4,6,8,0,12
如何获得这样的输出
First_mutableArray是1,2,3,4,5,6,8,0,12吗?
我试图在tempArray中添加偶数个data.localBookmarks是字典数组.这是我的代码:
currentIndex = indexPath.row;
for (NSDictionary *dict in localBookmarks)
{
if (currentIndex % 2 == 0 && currentIndex <= [localBookmarks count])
{
[tempArray addObject:[dict objectForKey:@"firstName"]];
}
currentIndex++;
}
NSLog(@"tempArray %@",tempArray);
cell.textLabel.text = [tempArray objectAtIndex:indexPath.row];
return cell;
Run Code Online (Sandbox Code Playgroud)
我的应用程序崩溃[tempArray addObject:[dict objectForKey:@"firstName"]]; 这一行,我该如何解决?
由于我的要求,我需要对我进行排序NSMutableArray并需要在该数组中放置唯一值.
这是我的代码,但我遇到的问题是我得到两个数组:一个具有不同的值,另一个没有明确的值但是已经排序.
/ *Making the years unique so that it will display only once*/
mSortingArray = [mYearsArray valueForKeyPath:@"@distinctUnionOfObjects.self"] ;
NSLog(@"mSortingArray%@",mSortingArray);
/*Sorting the array to get the years in assending format*/
NSSortDescriptor *sortDescriptor;
sortDescriptor = [[NSSortDescriptor alloc]initWithKey:@"self"ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
[mYearsArray sortUsingDescriptors:sortDescriptors];
NSLog(@"%@ :%@",mYearsArray,sortDescriptors);
Run Code Online (Sandbox Code Playgroud)
如何在一个数组中获得两个结果?
nsmutablearray ×10
iphone ×6
ios ×5
objective-c ×5
cocoa ×1
cocoa-touch ×1
memory-leaks ×1
nsdictionary ×1
nsnumber ×1
setvalue ×1
sparse-array ×1
uicolor ×1
uitableview ×1
xcode ×1