我试图简单地将对象添加到可变数组但它们不会插入.我没有得到错误或任何东西,我无法弄清楚发生了什么.
在我的主委托文件中,我将一个数组分成4个单独的字符串,就像这样.
NSArray *split=[currentParsedCharacterData componentsSeparatedByString:@"|"];
NSLog([split objectAtIndex:3]);
NSString *date=[split objectAtIndex:0];
NSString *venue=[split objectAtIndex:1];
NSString *event=[split objectAtIndex:2];
NSString *city=[split objectAtIndex:3];
Run Code Online (Sandbox Code Playgroud)
我已经找到了字符串值,它们肯定存在.
接下来我尝试将这些字符串值添加到可变数组中
[self.promoTabOptionEvents.dates addObject:date];
[self.promoTabOptionEvents.venues addObject:venue];
[self.promoTabOptionEvents.event addObject:event];
[self.promoTabOptionEvents.city addObject:city];
Run Code Online (Sandbox Code Playgroud)
当我检查调试器中的数组时,它们是空的.我究竟做错了什么?
promoTabOptionEvents类看起来像这样
@interface PromoTabOptionEvents : UIViewController {
NSString *event_headline;
NSMutableArray *dates;
NSMutableArray *venues;
NSMutableArray *event;
NSMutableArray *city;
}
@property(nonatomic,retain)NSString *event_headline;
@property(nonatomic,retain)NSMutableArray *dates;
@property(nonatomic,retain)NSMutableArray *venues;
@property(nonatomic,retain)NSMutableArray *event;
@property(nonatomic,retain)NSMutableArray *city;
-(void)applyLabels;
-(id)initWithTabBar;
@end
#import "PromoTabOptionEvents.h"
@implementation PromoTabOptionEvents
@synthesize event_headline;
@synthesize dates;
@synthesize venues;
@synthesize event;
@synthesize city;
-(id) initWithTabBar {
if ([self …Run Code Online (Sandbox Code Playgroud) 是否可以指定NSMutableArray只能包含某种类型的对象.例如,如果我只想存储这种对象:
@interface MyObject : NSObject {
UInt8 value;
}
Run Code Online (Sandbox Code Playgroud)
为了能够像这样使用实例变量:
- (void)myMethod:(NSMutableArray *)myArray{
for (id myObject in myArray){
[self otherMethod:myObject.value];
}
}
Run Code Online (Sandbox Code Playgroud)
因为我收到了这个错误:
request for member 'value' in something not a structure or union
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助
我有一系列字符串,我已经在我的uitableview中显示了.
当我的uitableview启用了编辑时,我正在尝试将一个字符串从第4行移动到第3行,当我调试此代码时,我在代码的索引部分插入对象中获得EXC_BAD_ACCESS.
[myStringsArray insertObject:name atIndex:toIndexPath.row];
Run Code Online (Sandbox Code Playgroud)
但是,如果我不调试,只是构建和运行,我打印以下行,然后它崩溃而没有在我的控制台中看到EXC_BAD_ACCESS.
NSLog(@"re-ordered myStringsArray array");
Run Code Online (Sandbox Code Playgroud)
这是我的moveRowAtIndexPath方法的所有代码:
// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectoryPath = [paths objectAtIndex:0];
NSString *path = [documentsDirectoryPath stringByAppendingPathComponent:@"MyStrings.plist"];
//re-order array
NSString *name = [myStringsArray objectAtIndex:fromIndexPath.row];
[myStringsArray removeObjectAtIndex:fromIndexPath.row];
[myStringsArray insertObject:name atIndex:toIndexPath.row];
NSLog(@"re-ordered myStringsArray array");
if([myStringsArray writeToFile:path atomically: YES]){NSLog(@"write succesful");}
else {NSLog(@"write failed");}
[myTable reloadData];
}
Run Code Online (Sandbox Code Playgroud)
任何想法为什么它认为我试图访问不存在的东西?
纠正我,如果我错了,但我的可变数组已经分配,如果删除方法有效,为什么插入方法不起作用?
谢谢
我有一个问题,我无法理解,并希望有人可以给我一个提示或帮助.
我有一个表,其中包含7个对象.当按下其中一个对象时,向用户呈现对应于被按压对象的新表.在该表中,用户可以按下"添加"按钮,将它们带到新表,在那里他们可以选择表2的对象.
表1和表3(第一个和最后一个)不需要编辑,但表2需要.我需要添加用户从表3中选择的数据,并在关闭后再次进入应用程序时保存它.
在表1中总是有7个对象.并且需要能够有一个不同的表2.所以我不确定最好的方法是创建7个不同的数组.
我之前已经看过,并且一直在使用,NSUserDefaults但是我不确定在使用时接近这个的好方法是什么NSUserDefaults.
我在用户定义的方法中声明了一个数组.我使用此数组来存储从sqlite数据库返回的值.然后我使用该值进行进一步处理......但Xcode在数组声明中给出了以下警告."永远不会读取初始化期间存储的值"这是我的代码:
NSMutableArray *tempId=[NSMutableArray array];
NSString *sqlStr1=[NSString stringWithFormat:@"select deck_id from decksTable limit '%d' offset '%d'",1,deckID-1];
char *sql1 = (char*)[sqlStr1 UTF8String];
tempId=[appDelegate.dbConnection fetchColumnFromTable:sql1 col:0];
NSNumber *tempint1 =[tempId objectAtIndex:0];
int actualDeckID=[tempint1 intValue];
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题.
注意dbConnection是数据库连接对象,fetchColumnFromTable是用户定义的方法,它返回从数据库获取的值数组.然后我得到NSNumber中的第一个值并将其转换为整数以在我的代码中使用它.我在tempId数组的声明中获得了上述警告.
这变得愚蠢,并驱使我破解者.
我有一个小的测试视图控制器,我循环通过十个问题.答案得到检查,分数上升或保持不变.这发生在 - (void)checkAnswer中.没问题!
现在让我头痛.我在.h中声明了一个NSMutableArray和@property.它是@synthesize
但是当我尝试在checkAnswer中添加"正确"或"错误"时,没有任何补充.
[scoreArray addObject:@"wrong"];
NSLog(@"scoreArray checkAnswer: %@",scoreArray);
Run Code Online (Sandbox Code Playgroud)
没有警告或错误,只是从NSLog获取(null).
试着没有快乐.
[self.scoreArray addObject:@"wrong"];
Run Code Online (Sandbox Code Playgroud)
谁在那里可以帮助我?我确信这是一件我看不到的简单事.谢谢
我想使用一个指向对象实例的指针数组,但只想在需要时(即懒惰地)创建这些对象的实例.该数组对应于UI中的表,因此每个数组索引对应一个表行.
我想使用NSMutableArray来保存指向对象实例的指针(当用户在UI中选择相应的行时发生).
如果选择表中的行,则检查相应的数组条目.如果指针值为nil,则尚未创建实例,因此在该点创建实例,并且对象指针存储在相应的索引数组条目中.
显然,这要求我最初从一个nil指针数组开始,但是objC不会让我在NSArray中放入一个nil指针.
我不能在创建数组时向对象添加对象,因为数组索引与表行不对应.
什么是最好的objC解决方案?
这里我使用NSMutableArray存储日期,然后我尝试设置键并在字典中分配ArrayValue但应用程序崩溃了,请帮助我
提前致谢
Here i tried the code for your reference:
[DateArray addObject:dateString]; //NSMutablArray
NSMutableDictionary *myDictionary =[[NSMutableDictionary alloc]init];
[myDictionary setObject:DateArray forKey:@"Date"]; //put array value and set key in NSDictionary.
Run Code Online (Sandbox Code Playgroud) 我有存储在许多价值观NSMutableArray一样@"New",@"Old",@"Future".将NSMutablArray有100多个对象.我需要@"New"从数组中找到对象.有谁可以帮我解决这个问题?提前致谢.
我正在学习iphone应用程序的开发和工作,可以让你输入两个单词并将它们组合起来.将这两个单词和组合单词输入到字典中,然后将其存储在可变数组中.还有另一个选项允许您输入整个单词,如果它在数组中,它将返回两个单独的单词.我的问题是我不知道如何搜索数组并浏览每个对象并找出答案.例如:
(
{
"Combined Word" = snowman;
"Word 1" = snow;
"Word 2" = man;
},
{
"Combined Word" = dirtbike;
"Word 1" = dirt;
"Word 2" = bike;
},
{
"Combined Word" = schoolbus;
"Word 1" = school;
"Word 2" = bus;
},
{
"Combined Word" = raindrop;
"Word 1" = rain;
"Word 2" = drop;
}
Run Code Online (Sandbox Code Playgroud)
如果我输入schoolbus并按下按钮,我该如何编码以便搜索可变数组并分析每个对象的"组合字",这样输入的单词就是一个值,它将返回相应的"Word 1"和"字2".
nsmutablearray ×10
iphone ×6
ios ×5
objective-c ×4
nsdictionary ×2
object ×2
crash ×1
ios4 ×1
memory-leaks ×1
nsarray ×1
uitableview ×1