我在NSMutableArray中有一堆NSStrings.我已将它们添加到数组中,现在我想循环遍历数组,获取其中的每个对象(字符串)并将它们设置为公共值@"No Lessons".
这就是我到目前为止的循环方式:但是如何获得对象然后设置呢?目前它相当简单,只是循环遍历数组,而不是改变任何东西.
NSInteger *count = [monLessonArrayA count];
for (int i = 0; i < count; i++) {
[monLessonArrayA objectAtIndex:i];
}
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢,谢谢.
编辑:
事实证明,某处有一个更大的问题.这是我正在使用的代码:
NSMutableArray* lessonArrayFuncTwo(id a, id b, id c, id d, id e, id f) {
NSMutableArray* lessonsArray = [[NSMutableArray alloc] init];
[lessonsArray addObject:a];
[lessonsArray addObject:b];
[lessonsArray addObject:c];
[lessonsArray addObject:d];
[lessonsArray addObject:e];
[lessonsArray addObject:f];
return lessonsArray;
}
- (void)viewDidLoad {
[super viewDidLoad];
monLessonArrayA = lessonArrayFuncTwo(monP1A, monP2A, monP3A, monP4A, monP5A, monP6A);
monLessonArrayB = lessonArrayFuncTwo(monP1B, monP2B, monP3B, monP4B, monP5B, monP6B); …Run Code Online (Sandbox Code Playgroud) 任何人都可以解释为什么使用mutableCopy会泄漏内存?
- (id)objectInListAtIndex:(unsigned)theIndex {
NSSortDescriptor *descriptor = [[[NSSortDescriptor alloc] initWithKey:@"noteNumber" ascending:YES] autorelease];
[list sortUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
NSMutableArray *theArray = [list mutableCopy];
NSDictionary *theDict = [theArray objectAtIndex:theIndex];
return theDict;
}
Run Code Online (Sandbox Code Playgroud) 所有当我使用[nsmutablearray removeAllObjects]时我得到:[nsmutableArray retainCount] == 1;
然后,我使用[nsmutableArray relese]; 我有[nsmutableArray retainCount] == 1;
所以,我认为,[XXX retainCount] == 0真的代表内存释放???
我有这个代码:
secondArray = [firstArray objectAtIndex:1];
Run Code Online (Sandbox Code Playgroud)
索引1处的对象已经是一个NSMutableArray [firstArray].问题是,当我改变时secondArray,firstArray也会发生变化.
我怎么能阻止这个?
我想问一下以下情况是否有可能发生.我有一个Nsmutablearray,我有5个对象.我在一个uitableview上加载了Nsmutablearray.我想在其他五个对象的顶部插入一个新对象,但也将所有先前插入的对象向下移动一个.让我给你举个例子
0 one
1 two
2 three
3 four
4 five
Run Code Online (Sandbox Code Playgroud)
我想在新对象插入顶部后得到这样的结果
0 six
1 one
2 two
3 three
4 four
5 five
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏.
所以我试图改变我所制作的NSMutableArray中的所有布尔值.
我有:
@property (nonatomic, retain) NSMutableArray *isDinosaurTapped;
Run Code Online (Sandbox Code Playgroud)
并合成:
@synthesize isDinosaurTapped;
Run Code Online (Sandbox Code Playgroud)
并设置[EDITED to show isDinosaurTapped]:
NSMutableArray *newDinosaurTaps = [[NSMutableArray alloc] init];
for( int i = 0; i < [dinoSprites count]; i++ )
{
NSNumber *isTapped = [posPlist valueForKeyPath:[NSString stringWithFormat:@"Dinosaurs.Dinosaur_%i.isTapped", i]];
[newDinosaurTaps addObject:isTapped];
}
self.isDinosaurTapped = [newDinosaurTaps copy];
for( int i = 0; i < [isDinosaurTapped count]; i++ )
{
[isDinosaurTapped replaceObjectAtIndex:i withObject:[NSNumber numberWithBool:NO]];
}
Run Code Online (Sandbox Code Playgroud)
当我构建它的时候很好,但是当我实际构建并运行时,我不断得到一个SIGABRT:' - [__ NSArrayI replaceObjectAtIndex:withObject:]:发送到实例的无法识别的选择器.
我是否错误地设置了NSMutableArray的属性?但根据这个,我的属性应该没问题.
非常感谢任何反馈!:d
我是Objective-C的新手,并尝试使用表视图创建待办事项列表应用程序.当按下按钮时,我试图继续向我的可变数组添加字符串.但每次按下按钮时,只有最后一个字符串被添加到数组中.
- (IBAction)notebutton:(UIButton *)sender {
NSMutableArray *mystr = [[NSMutableArray alloc] init];
NSString *name = _noteField.text;
[mystr addObject:name];
[self.tableView reloadData];
}
Run Code Online (Sandbox Code Playgroud) NSFileManager *fileManager= [[NSFileManager alloc]init];
NSDirectoryEnumerator *myEnumerator= [fileManager enumeratorAtPath:[[theFolder URLByDeletingLastPathComponent]path]];
int f,size=0;
NSMutableArray *dirList=[[NSMutableArray alloc]init];
NSString *fpath;
while (fpath=[myEnumerator nextObject])
{
[dirList addObject:fpath];
}
[dirList sortedArrayUsingSelector:@selector(localizedStandardCompare:)];
Run Code Online (Sandbox Code Playgroud)
dirList包含类似"name_0012345.tif"的文件名.尽管排序数组不包含文件的顺序,我将在finder中按名称排序.
我一直在尝试为Objective-C类型的数组分配一个Swift类型的数组,因为我试图在我的项目中使用Objective-C和Swift类.在我的swift类中,我声明了一个数组var musicEntities = [MusicEntity]()
.当我尝试分配实现以下代码时:
let musicVC: MusicViewController = MusicViewController.sharedInstance()
musicVC.musicEntities = musicEntities // line2
Run Code Online (Sandbox Code Playgroud)
在第2行,我收到以下错误:
Can't assign Value of type '[SomeObject]' to type '[NSMutableArray]'
Run Code Online (Sandbox Code Playgroud)
我知道cast可以帮助我解决问题.我试图在Stack Overflow中找到具体的答案,但我没有得到任何可以解决我的问题的具体答案.我尝试了很多方法将它转换为NSMutableCompatible,但是当我尝试强制转换时,我遇到了不同的错误.
如何将[MusicEntity]数组转换为NSMutableArray?我需要有关我的问题的具体答案.
期待着答案.谢谢.
在我的应用程序中,我想实现下拉刷新.因此,当滚动视图向下滚动其加载更多数据.现在第一次加载页面时我将数据保存在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方法'
那我怎么解决这个问题呢?
nsmutablearray ×10
objective-c ×9
ios ×4
iphone ×3
nsarray ×2
swift ×2
arrays ×1
boolean ×1
cocoa ×1
loops ×1
memory-leaks ×1
nsnumber ×1
sorting ×1
uitableview ×1