我试图从一个plist得到一个数组,如答案所示,但它不起作用.有人能告诉我我错过了什么吗?
这是plist的样子......另一个奇怪的是我无法在纯文本文件中打开它?当我这样做看起来像垃圾.....但它在属性列表编辑器中看起来很好:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>count</key>
<array>
<integer>5</integer>
</array>
<key>username</key>
<array>
<string>johnsmith</string>
</array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的代码.....字典是NSMUtableDictionary,accountsArray是.h文件中的NSMustableArray.
NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:accountsFilePath];
dictionary = tempDictionary;
[tempDictionary release];
NSMutableArray *nameArray = [[NSMutableArray alloc] init];
nameArray = [dictionary objectForKey:@"username"];
accountsArray = nameArray;
[nameArray release];
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?搞砸了什么?
谢谢...
我有一个NSMutableArray:
NSMutableArray *temp = //get list from somewhere.
Run Code Online (Sandbox Code Playgroud)
现在有一个方法objectAtIndex,它返回指定索引处的对象.
我想要做的是,我想首先检查指定索引处的对象是否存在.如果它存在而不是我想要获取该对象.就像是:
if ([temp objectAtIndex:2] != nil)
{
//fetch the object
}
Run Code Online (Sandbox Code Playgroud)
但我在if语句中得到异常,说索引超出了限制.
请有人告诉我如何实现这一目标.
我想在ArrayList/NSMutableArray中存储几个套接字,但套接字的类型为int,NSMutableArray只接受对象(id).是否有其他数据类型可以用作套接字的容器?我不确定我会有多少条目,所以我希望数据容器就像一个ArrayList.
谢谢!
编辑:我已经尝试将套接字作为NSNumber发送,但是当我尝试使用套接字发送消息时,它无法正常工作并导致XCode崩溃.
我上了课.这是h文件.
// MyClass.h
#import <Foundation/Foundation.h>
@interface MyClass : NSObject <NSCoding> {
NSString *string1;
NSString *string2;
}
@property (nonatomic, retain) NSString *string1;
@property (nonatomic, retain) NSString *string2;
@end
Run Code Online (Sandbox Code Playgroud)
这是m文件.
// MyClass.m
#import "MyClass.h"
@implementation MyClass
@synthesize string1, string2;
- (void)encodeWithCoder:(NSCoder *)coder;
{
if (self = [super init]){
[coder encodeObject:string1 forKey:@"string1"];
[coder encodeObject:string2 forKey:@"string2"];
}
}
- (id)initWithCoder:(NSCoder *)coder;
{
self = [[MyClass alloc] init];
if (self != nil)
{
string1 = [coder decodeObjectForKey:@"string1"];
string2 = [coder decodeObjectForKey:@"string2"];
}
return self;
} …Run Code Online (Sandbox Code Playgroud) 关于xcode中Array的快速问题.我有以下代码,它应该通过php和JSON获得的字符串数组,并将这些字符串转换为自定义对象,字符串作为对象的ivars然后将该对象添加到新数组:
for (int i = 0; i<[list count]; i++) {
Article *article = [[Article alloc] init]; //creates custom object
article.uid = [[list objectAtIndex:i] objectAtIndex:0];
article.title = [[list objectAtIndex:i] objectAtIndex:1]; //adds string as ivars
article.description = [[list objectAtIndex:i] objectAtIndex:2];
articleArray = [[NSMutableArray alloc] init]; //inits the new array
[articleArray addObject:article]; //should add the object but seems to fail
[article release]; //releases the object
NSLog(@"%@", article.description);
}
NSLog(@"%d", [articleArray count]);
NSLog([articleArray description]);
}
Run Code Online (Sandbox Code Playgroud)
代码确实使用NSLog(@"%@", article.description);但不是新数组的正确长度返回正确的值,它只向数组添加一个值,这是article.description的字符串,这对我没有意义.list数组包含2个元素,每个元素都是包含字符串的数组.
在某处.我放了
@property (nonatomic, retain) NSMutableArray * BusinessQueue;
-(BNUtilitiesQuick *) init {
if (!(self = [super init]))
{
return nil;
}//if the superclass is NSObject, this must be init
self.locationManager = [[[CLLocationManager alloc] init]autorelease];
BusinessQueue = [[[NSMutableArray alloc]init]autorelease];
return self; //and return the object itself
}
Run Code Online (Sandbox Code Playgroud)
我看到它的方式BusinessQueue = [[[NSMutableArray alloc]init]autorelease]; 将引用计数为1.1.-1表示自动释放(有时是后者)和1表示因为BusinessQueue是一个保留属性.
但是,BusinessQueue有时会被解除分配.
为什么BusinessQueue总是出错而位置经理却没有
任何错误的代码?或NSMutableArray无法在init类声明?
我有一个NSMutableArray,包含x不同的NSStrings(NSString但只有数字没有字母).我想将所有值相加以返回单个float或int.我想我必须用for循环来做这个,但我对for循环非常不熟悉......好吧我已经达到了这一点:
for (NSString *a in det)
{
float x = [a floatValue];
NSLog(@"%.2f",x);
}
Run Code Online (Sandbox Code Playgroud)
这将在'NSLog`中返回所有这样的值:
23.00
8.00
61.00
...
Run Code Online (Sandbox Code Playgroud)
我怎么才能把它们加起来呢?
所以我有一个强大的集合变量x(类型为NSMutableArray,例如),当做dealloc时,如果我只做x = nil,它会与下面的效果相同吗?
[x removeAllObjects];
[x release]; // not needed in ARC
x = nil;
Run Code Online (Sandbox Code Playgroud) 我正在尝试iCarousel,有一个函数可以删除视图的索引和数组的索引,
NSInteger index = carousel.currentItemIndex;
[carousel removeItemAtIndex:index animated:YES];
[imagesArray removeObjectAtIndex:index];
Run Code Online (Sandbox Code Playgroud)
我删除它直到剩下一个项目,然后如果剩下一个项目我想插入它的副本.我试过这个:
insertItemAtindex:carousel.currentItemIndex 但它正在插入最后一个视图.
但我想要的是在我的视图中插入carousel的/ imagesArray最后一个对象/索引.我该如何实现它,或者如何确定NSMutableArray在视图中留下的最后一个对象?
我有一个包含许多行的tableview,我希望能够删除这些行.填充tableview的数据存储在NSMutableArray中.要删除一行上的数据我打电话:
- (void)deleteFromArray:(NSUInteger) number{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; //load NSUserDefaults
NSMutableArray *storedArray = [[ NSMutableArray alloc] init];
storedArray = [prefs objectForKey: @"mydata"];
[storedArray removeObjectAtIndex:number];
[prefs setObject:storedArray forKey:@"mydata"];
[storedArray release];
[prefs synchronize];
}
Run Code Online (Sandbox Code Playgroud)
从
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
subscribe *subscribeclass = [subscribe alloc];
[subscribeclass deleteFromArray: indexPath.row];
[myTableView reloadData];
}
}
Run Code Online (Sandbox Code Playgroud)
这在我第一次删除行时工作正常.但是当我删除秒行时,应用程序在deleteFromArray中的以下行崩溃:
[storedArray removeObjectAtIndex:number];
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
nsmutablearray ×10
cocoa-touch ×5
iphone ×5
ios ×4
objective-c ×4
xcode ×2
arraylist ×1
cocoa ×1
crash ×1
icarousel ×1
plist ×1
sockets ×1
uitableview ×1