关于这个主题有一些线索,但没有一个能够解决我的问题.本质上我正在尝试将自定义对象添加到NSMutableArray,它似乎没有添加.我没有得到任何错误,但我得到一个警告,说我的数组是一个"未使用的变量",所以看起来它没有被使用.见下面的代码.任何帮助表示赞赏!
这是app委托中的初始化(在运行时它表示没有使用此数组):
NSMutableArray *organArray = [[NSMutableArray alloc] init];
Run Code Online (Sandbox Code Playgroud)
这是我的对象类organ.m(我正在导入app delegate,rootviewcontroller和organ.h文件)
Organ *organObj = [[Organ alloc] initWithPrimaryKey:primaryKey];
organObj.organName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt,1)];
organObj.isDirty = NO;
[appDelegate.organArray addObject: organObj];
[organObj release];
Run Code Online (Sandbox Code Playgroud)
我知道organObj.organName从我的sqlite数据库中获取正确的值,因为我可以将它们输出到控制台.它们似乎没有被添加到数组中,并且它表示数组未被使用意味着出错了.
提前致谢
我有一个带有数据的NSMutableArray(硬编码).
我实现了这两个TableView方法,在IB中,我设置了委托和数据源
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [myArray count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];
if (!cell) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"] autorelease];
}
cell.textLabel.text = [myArray objectAtIndex:[indexPath row]];
NSLog(@"Cell is %@", [myArray objectAtIndex:indexPath.row]);
return cell;
}
Run Code Online (Sandbox Code Playgroud)
数据不会出现在TableView中.我已经运行了NSLog,我可以看到数据在myArray中.
我将NSLog添加到代码中,似乎代码永远不会执行.问题是我的数组是如何创建的?
这是代码
- (id)init:(NSMutableArray *)theArray
{
[super init];
countryTable.delegate = self;
countryTable.dataSource = self;
UITapGestureRecognizer * tapRecognizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)] autorelease];
[window addGestureRecognizer:tapRecognizer];
myArray = [[NSMutableArray alloc] init];
myArray = …Run Code Online (Sandbox Code Playgroud) 可能重复:
如何在目标C中以相反的顺序显示数组
我有一个NSMutableArray和这个数组包含很好的信息UITableView.但我想先显示最新信息UITableView.现在最早的信息是第一位的UITableView.我的代码如下:
NSMutableArray *entries = [NSMutableArray array];
[self parseFeed:doc.rootElement entries:entries];
for (RSSEntry *entry in entries) {
[allEntries insertObject:entry atIndex:0]; //insertIdx];
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationRight];
}
Run Code Online (Sandbox Code Playgroud)
那么我该如何反转信息NSMutableArray呢?
我想将a(或复制?)NSMutableArray转换为a NSString.我想我的问题是我并不真正了解a的结构NSString.转换后我想将它附加到电子邮件正文中.这是我的代码:
- (IBAction)sendEmail
{
NSLog(@"sendEmail");
[textView resignFirstResponder];
[textView1 resignFirstResponder];
if ([MFMailComposeViewController canSendMail])
{
// set the sendTo address
NSMutableArray *recipients = [[NSMutableArray alloc] initWithCapacity:1];
[recipients addObject:@"example@yahoo.com"];
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"Iphone Game"];
NSString *string = [string appendString:[NSString stringWithFormat:"%@", [viewArray objectAtIndex:i]]];
[controller setMessageBody:string isHTML:NO];
[controller setToRecipients:recipients];
[self presentModalViewController:controller animated:YES];
[controller release];
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert"
message:@"Your device is not set up for email." delegate:self …Run Code Online (Sandbox Code Playgroud) 可能重复:
NSMutableArray initWithCapacity细微差别
Objective-c NSArray init与initWithCapacity:0
以下代码行有什么区别?什么是确切的优势和劣势?假设接下来我将做3个addObject操作.
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity: 5];
NSMutableArray *array = [[NSMutableArray alloc] init];
Run Code Online (Sandbox Code Playgroud) 我试图将nsindexpath添加到一个数组..我只能添加一个索引路径.如果我尝试将另一个索引路径添加到数组..调试器只显示最新的索引路径.
for (int i = 0 ; i<[notificationArray count]; i++)
{
selectedSymptIndexPath = [NSIndexPath indexPathForRow:selectedSymptomIndex inSection:keyIndexNumber];
selectedSympIPArray = [[NSMutableArray alloc]init];
[selectedSympIPArray addObject:selectedSymptIndexPath];
}
Run Code Online (Sandbox Code Playgroud)
即使我试图将[selectedSympIPArray addObject:selectedSymptIndexPath];外部循环仍然只添加最新的索引路径而不是显示多个索引路径
我怎么能以编程方式做到这一点?
我被告知这是做到这一点的方式但是NSSet有不同的顺序.
NSSet *set = [NSSet setWithArray:theArray];
Run Code Online (Sandbox Code Playgroud)
任何的想法?
提前致谢.
当我尝试向检索到的对象添加对象时,我不断收到此错误NSMutableArray.
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArray insertObject:atIndex:]: mutating method sent to immutable object'
Run Code Online (Sandbox Code Playgroud)
检索:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *arrayOfTitles = [userDefaults objectForKey:@"mainArraySaveData"];
NSMutableArray *arrayOfSubjects = [userDefaults objectForKey:@"subjectArraySaveData"];
NSMutableArray *arrayOfDates = [userDefaults objectForKey:@"dateArraySaveData"];
_mutableArray=arrayOfTitles;
_subjectArray=arrayOfSubjects;
_dateArray=arrayOfDates;
[_tableView reloadData];
Run Code Online (Sandbox Code Playgroud)
保存:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
_mutableArray = [[NSMutableArray alloc] initWithArray:[userDefaults objectForKey:@"mainArraySaveData"]];
[userDefaults setObject:_mutableArray forKey:@"mainArraySaveData"];
[userDefaults synchronize];
_dateArray = [[NSMutableArray alloc] initWithArray: [userDefaults objectForKey:@"dateArraySaveData"]];
[userDefaults setObject:_dateArray forKey:@"dateArraySaveData"];
[userDefaults synchronize];
_subjectArray = [[NSMutableArray alloc] initWithArray: [userDefaults …Run Code Online (Sandbox Code Playgroud) 我有1个mutablearray,我想删除对象的所有索引,但在第一个索引处保持对象.示例:输入:数组(a,b,c,d,e)输出:数组(a)
你能帮助我吗.提前致谢
我环顾了其他类似的问题,但没有真正有效.
我设法在我的Plist上只写了一对字典对(对象/键)(例如:setObject:itemProperties [0] forKey [0]).但我希望添加所有的对象和密钥.到目前为止我没有管理(返回错误).有帮助吗?
// Path to Documents Folder
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"items.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: path])
{
path = [documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat: @"items.plist"] ];
}
NSMutableDictionary *items;
if ([fileManager fileExistsAtPath: path])
{
items = [[NSMutableDictionary alloc] initWithContentsOfFile: path];
}
else
{
// If the file doesn’t exist, create an empty dictionary
items = [[NSMutableDictionary alloc] initWithCapacity:5];
}
// array of …Run Code Online (Sandbox Code Playgroud) nsmutablearray ×10
objective-c ×8
ios ×7
iphone ×4
ios4 ×2
xcode ×2
nsarray ×1
nsdictionary ×1
nsindexpath ×1
nsset ×1
plist ×1
uitableview ×1