问候可可大师 - 这个简单的问题让我爬上了墙.我有一个名为Movie的自定义类,它由一堆属性和一些集合组成.我使用FMDB和SQLite成功填充它.但是,每次从DB传递结果集合时,我的addObject:似乎都在写整个数组:
SciFiLib = [[NSMutableArray alloc]init];
FMResultSet *SciFiResultSet = [db executeQuery:@"select Movie.*......];
Movie *m = [[Movie alloc] init];
while ([SciFiResultSet next]) {
m.movieID =[SciFiResultSet stringForColumn:@"movie_id"];
m.title = [SciFiResultSet stringForColumn:@"title"];
.....
[SciFiLib addObject: m];
Run Code Online (Sandbox Code Playgroud)
在这一点上 - 我有NSLog的m输出 - 它包含一个不同的电影(标题,ID,发布日期等 - 所以我知道数据是正常的).但是,从第二次遍历WHILE循环开始,每个后续的addObject都会用下一个数据项的副本替换整个数组.所以在我的循环结束时,我有6份相同的电影数据.
我在这里只用了一系列电影标题来镜像我的自定义类,这看起来很有效,但我想为我的模型数据收集电影的所有属性.任何人都可以了解可能导致这种行为的原因吗?
在此先感谢您的帮助和建议!
...
例如:我有一个可变数组的BOOL(或[NSNumber numberWithBool:TRUE];).然后我想改变,例如这个数组中的第一个值为FALSE.
[array addObject:[NSNumber numberWithBool:TRUE]];
[array objectAtIndex:0] ???
Run Code Online (Sandbox Code Playgroud)
我知道一种非常奇怪的方式来完成这项任务.
[array replaceObjectAtIndex:0 withObject:[NSNumber numberWithBool:FALSE]];
Run Code Online (Sandbox Code Playgroud)
是的,这完全满足了我,但我正在寻找另一种方式,这比这更简单.喜欢的东西[[array objectAtIndex:0] setBoolValue:FALSE];,例如,想象一下,如果我有UIButton的,而不是布尔值将:[[array objectAtIndex:0] setHidden:TRUE];或者这仅仅是梦想?
提前致谢!
在我的项目中,我想在NSMutableArray的特定位置添加一个对象,例如:
if(index ==1) {
// I want add object at position 1 of NSMutableArray
}
if(index == 2) {
// I want add object at position 2 of NSMutableArray
}
...
if(index == 15) {
// I want add object at position 15 of NSMutableArray
}
Run Code Online (Sandbox Code Playgroud)
我能怎么做?
我有数据到可变数组和数组的值是,
{ "20", "40", "50","60", "70"}.
Run Code Online (Sandbox Code Playgroud)
我已将字符串值存储到数组中.
现在我想要数组的总值.结果是:240
谢谢!
当用户通过我的iPhone应用程序登录时,我在NSUserDefaults中创建了一堆默认元素.其中一个是NSMutableArray,我添加了以下方式:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSMutableArray *theArray = [NSMutableArray array];
[prefs setObject:theArray forKey:@"theArray"];
Run Code Online (Sandbox Code Playgroud)
这完美无瑕.但是,当我想插入或检索值时theArray,出现问题.这是我的应用程序中另一个文件的摘录:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[[prefs objectForKey:@"theArray"] setValue:@"This is a value" forKey:@"aValue"];
NSLog(@"%@", [[prefs objectForKey:@"theArray"] valueForKey:@"aValue"]);
Run Code Online (Sandbox Code Playgroud)
我希望在代码运行时在控制台中看到"这是一个值",但我得到了这个:
2011-08-08 18:35:17.503 MyApp[7993:10d03] (
)
Run Code Online (Sandbox Code Playgroud)
为什么数组是空的?我使用NSArray尝试了同样的结果.
我有一个 NSMutableArray * nameCatalog包含names和urls(name, url).
如果我显示nameCatalog的viewDidLoad是这样的:
for (Catalogue *o in nameCatalog){
NSLog(@"Catalog: %@", o.url);
}
Run Code Online (Sandbox Code Playgroud)
我得到以下链接,这很好:
接下来我NSMutableArray * nameCatalog想把as内容放到一个表中.我实现了以下内容:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSURL *url=[NSURL URLWithString:[[nameCatalog objectAtIndex:indexPath.row] valueForKey:@"url"]];
NSLog(@"the clicked url:%@", url);
}
Run Code Online (Sandbox Code Playgroud)
因此,当我单击表格的第一行时,它将显示第一个URL ...第二行,依此类推.
当我点击first row它时会显示这个
哪个是对的.
当我点击second row它时显示:
这也是正确的.
当我点击third row它时显示:
(null)
Run Code Online (Sandbox Code Playgroud)
这是错的!
我哪里错了?
与第三个链接包含的事实有什么关系french e?
在这个词中coupé.
重要:
以上是为了简化,为了让每个人都清楚,我认为我NSMutableArray
只包含3个网址.
事实上它包含更多,大约20个网址french e.除了包含的网址外,一切都很顺利.当我点击表格的那些行 …
我遇到一个特定的错误; 我在这条线上得到"SIGABRT":
cell.textLabel.text = [collections objectAtIndex: [indexPath row]];
Run Code Online (Sandbox Code Playgroud)
我的头文件:
#import <UIKit/UIKit.h>
@interface CollectionsViewController : UITableViewController {
NSMutableArray *collections;
NSMutableData *responseData;
}
@property (nonatomic, retain) NSMutableArray *collections;
@end
Run Code Online (Sandbox Code Playgroud)
和实施文件:
#import "CollectionsViewController.h"
#import "JSON.h"
@implementation CollectionsViewController
@synthesize collections;
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
// …Run Code Online (Sandbox Code Playgroud) 你好朋友我想在NSMutableAray中存储NSMutableAray并想要检索它.我能够存储但无法访问它.我的代码如下:
NSMutableArray *muteArray;
NSMutableArray *muteArray_Master;
NSMutableArray *mutArrar_Level1;
NSArray *Children = [dictionary objectForKey:@"Children"];
if (Children.count > 0) {
muteArray = [NSMutableArray arrayWithArray:Children];
}
muteArray_Master= [[NSMutableArray alloc] init];
mutArrar_Level1= [[NSMutableArray alloc] init];
[muteArray_Master addObject:muteArray]; // muteArray_Master array added one object successfully
i = [muteArray_Master count]; // Here I have i=1
mutArrar_Level1 = [NSMutableArray arrayWithArray:[muteArray_Master objectAtIndex:i-1]]; // But here mutArrar_Level1 not producing correct data.still it is with 0 objects
Run Code Online (Sandbox Code Playgroud)
所以我的要求是存储多个NSMutableArray NSMutableArray并在另一个中访问all.
谢谢Deepak R.
我创建了一个单例类,以便在我的程序中共享一个对象.这是代码:
SelectedRow.h
#import <Foundation/Foundation.h>
#import "TableEntry.h"
@interface SelectedRow : NSObject {
TableEntry *rowValue;
}
@property (nonatomic, retain) TableEntry *rowValue;
+ (id)sharedManager;
- (void)setVariable:(TableEntry*)value;
@end
Run Code Online (Sandbox Code Playgroud)
和SelectedRow.m
#import "SelectedRow.h"
#import "TableEntry.h"
@implementation SelectedRow
@synthesize rowValue;
+ (id)sharedManager {
static SelectedRow *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] init];
});
return sharedMyManager;
}
- (id)init {
if (self = [super init]) {
rowValue = [[TableEntry alloc] init];
}
return self;
}
- (void)setVariable:(TableEntry*)value {
rowValue = value;
} …Run Code Online (Sandbox Code Playgroud) NSPredicate *predicate = [NSPredicate
predicateWithFormat:@"todo_category_id IN %@"
argumentArray:array];
Run Code Online (Sandbox Code Playgroud)
todo_category_id是一个NSNumber-type属性.
array仅包含3个也是NSNumber类型对象的元素.
我想根据这些ID从Core Data中获取类别.
nsmutablearray ×10
ios ×5
objective-c ×5
iphone ×3
cocoa ×2
xcode ×2
add ×1
arrays ×1
boolean ×1
cocoa-touch ×1
core-data ×1
nsarray ×1
nspredicate ×1
singleton ×1
uitableview ×1