NSArray *test1 = [NSArray arrayWithObjects:@"1",@"2", nil];
NSArray *test2 = [NSArray arrayWithObjects:@"1",@"2", nil];
NSArray *test3 = [NSArray arrayWithObjects:@"1",@"2", nil];
NSLog(@"%d", [test1 count] == [test2 count] == [test3 count]);
Run Code Online (Sandbox Code Playgroud)
会打印0.为什么?
我有一个NSArray如下:
NSArray *directoryContent = [[NSFileManager defaultManager] directoryContentsAtPath:filePath];
Run Code Online (Sandbox Code Playgroud)
filePath上的文件是:
11.thm,12.thm,13.thm,...,Text_21.thm,Text_22.thm,Text_23.thm,...
我想按顺序对NSArray进行排序:
13.thm,12.thm,11.thm,...,Text_23.thm,Text_22.thm,Text_21.thm,...
我该如何实现这一目标?
我有一个已包含pList的NSString.
我如何将其变成NSArray?(没有将其保存到磁盘,只能使用arrayWithContentsOfFile重新加载它,然后必须删除它.)
make arrayWithPlist或arrayWithString方法在哪里?(或者我将如何制作自己的?)
NSArray *anArray = [NSArray arrayWithPlist:myPlistString];
Run Code Online (Sandbox Code Playgroud) 我猜它执行浅拷贝.但是,如果是这种情况,它如何影响阵列中的对象?
示例字符串:
NSString * exampleString =
@""
"#--- delimiter2 ---"
"bla,"
"bla,"
"bla"
"#--- delimiter2 ---"
"yoip,"
"yoip,"
"yoip"
"#--- delimiter3 ---"
"etc,"
"etc,"
"etc,"
"etc,"
"etc,"
"etc,"
"etc";
Run Code Online (Sandbox Code Playgroud)
我想取一个数组并将其填充为:
[anyArray objectAtIndex:0] = @"bla,bla,bla"
[anyArray objectAtIndex:1] = @"yoip,yoip,yoip"
[anyArray objectAtIndex:2] = @"etc,etc,etc,etc,etc,etc,etc"
Run Code Online (Sandbox Code Playgroud)
如果这是有道理的......
任何帮助,将不胜感激 :)
谢谢
我试图通过Web服务解析一些JSON.逻辑是:
id jsonObject = ....; //This can be string or array
if([jsonObject class] == [NSString class] || [jsonObject class] == [NSMutableString class]{
// DO some thing
}
else if([jsonObject class] = [NSArray class] || [jsonObject class] == [NSMutableArray class]{
// Do some thing else
}
Run Code Online (Sandbox Code Playgroud)
然而,对于其中一个元素,我遇到了一个奇怪的问题.这个元素的类应该是NSArray,但是当我运行代码时,我将该类视为__NSArrayM.这与第二个if块不匹配.
有人可以告诉我我做错了什么
建立:
ViewController拥有一个MyArray物体PersonClass.
PersonClass只有两个属性:name和age.
问题:
当我想name从第一个对象中读出一个属性时,MyArray正确的方法是什么?
我是否必须暂时创建这样的实例PersonClass?
PersonClass *tmp = [PersonClass alloc] init];
tmp = [MyArray objectAtIndex:0];
NSLog(@"%@", tmp.name);
Run Code Online (Sandbox Code Playgroud)
或者是否可以直接参考properties的objects在MyArray?
像这样的东西:
NSLog(@"%@", [self.contactsArray objectAtIndex:0].name); // not working
Run Code Online (Sandbox Code Playgroud) 我从CoreData fetch中创建了一个NSArray,如下所示:
self.farSiman = [self.managedObjectContext executeFetchRequest:request error:&error];
Run Code Online (Sandbox Code Playgroud)
在tableview中,我使用此代码来获取自定义对象:
Holiday *holiday = [self.dates objectAtIndex:indexPath.row];
cell.nameLabel.text = holiday.name;
Run Code Online (Sandbox Code Playgroud)
但是我现在在另一个viewcontroller中,试图在mapkit上绘制数据,所以在绘图方法中我最初这样做是因为我从plist文件中获取了一个数组.但现在我的数组是自定义Holiday对象,所以这不再起作用了:
NSLog(@"dictionary is %@", self.farSiman);
for (NSDictionary * dict in self.farSiman) {
NSNumber * latitude = [dict objectForKey:@"latitude"];
NSNumber * longitude = [dict objectForKey:@"longitude"];
NSString * storeDescription = [dict objectForKey:@"name"];
NSString * address = [dict objectForKey:@"address"];
NSLog(@"logging location %@", storeDescription);
CLLocationCoordinate2D coordinate;
coordinate.latitude = latitude.doubleValue;
coordinate.longitude = longitude.doubleValue;
MyLocation *annotation = [[MyLocation alloc] initWithName:storeDescription address:address coordinate:coordinate];
[_mapView addAnnotation:annotation];
}
Run Code Online (Sandbox Code Playgroud)
我的字典日志打印出来:
dictionary is (
"<Holiday: …Run Code Online (Sandbox Code Playgroud) 所以假设我有一个NSArray填充了数百个NSDictionary对象.
所有字典对象都具有键的值,name但这些值名称可能在不同对象中出现多次.
我需要能够过滤这个NSArray只返回每个唯一name属性一个对象(无论哪个对象,第一个或最后一个,我不在乎).
这是我有多远,但显然我的filtered数组包含所有对象而不是唯一的对象.
我认为必须有一种方法可以告诉谓词将结果限制为只有一个/第一个匹配?
NSArray *allObjects = ... // This is my array of NSDictionaries
NSArray *uniqueNames = [allObjects valueForKeyPath:@"@distinctUnionOfObjects.name"];
NSArray *filtered = [allObjects filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(self.name IN %@)", uniqueNames]];
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有一个包含可能不同类的对象的数组,例如:
NSArray *multiClassArray = @[@"foo", @42, @"bar"];
Run Code Online (Sandbox Code Playgroud)
我想得到一个新数组,其中包含multiClassArray其类的所有对象,比如说NSString.
有没有比循环每个项更优雅的方法multiClassArray,检查它的类,并适当地将它存储在一个新的数组中?
nsarray ×10
objective-c ×6
ios ×4
iphone ×4
arrays ×1
comparison ×1
count ×1
enumeration ×1
filenames ×1
ivar ×1
nsdictionary ×1
nsstring ×1
parsing ×1
plist ×1
properties ×1
sorting ×1