我正在尝试使用NSArray的filteredArrayUsingPredicate:方法来过滤核心数据托管对象的数组.这是一个大纲:
NSArray *array = self.fetchedResultsController.fetchedObjects;
NSPredicate *predicate = [NSPredicate
predicateWithFormat:@"name contains[c] %@", searchString];
NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)
这总是返回一个空的'filteredArray'?我猜这是我的谓词,但我知道'array'中的对象是带有名为"name"的键的托管对象.'searchString'的值是可以的,我已经运行了performFetch:before.
我需要检测NSArray对象中的更改 - 即,是否在NSArray中添加/删除了某些对象,或者只是就地进行了编辑.是否有一些集成的NSArray哈希函数用于此任务 - 或者我需要为NSArray编写自己的哈希函数?也许某人有不同的解决方案 有任何想法吗 ?
我必须对一组字典进行排序,但我必须按字典中的对象排序.
我正在使用以下代码片段来处理我正在努力打印iPhone屏幕上的单词列表的应用程序:
NSString *labelText = [[NSString alloc] initWithFormat:@"%@", [self.dictionary selectList]];
//creates a string list from an NSDictionary key with a value of an NSArray that has NSString objects in it
self.listLabel.text = labelText;
//displays list in label
Run Code Online (Sandbox Code Playgroud)
列出的单词显示在标签中的多行上,但是数组由括号括起并用逗号分隔.
例如,如果我有一个NSDictionary键@"Cat",它有一个NSArray值,如下所示:@"snow leopard",@"lion",@"tiger",那么我在屏幕上的输出将如下:
(
snow leopard,
lion,
tiger
)
Run Code Online (Sandbox Code Playgroud)
有没有办法摆脱这个标点符号?
谢谢!
有没有一种简单的方法将NSString拆分成一个字符数组?如果结果类型是NSString本身的集合,每个只有一个字符,那将是最好的.
是的,我知道我可以循环执行此操作,但我想知道是否有更快的方法可以使用C#中的LINQ以任何现有方法或函数执行此操作.
例如
// I have this...
NSString * fooString = @"Hello";
// And want this...
NSArray * fooChars; // <-- Contains the NSStrings, @"H", @"e", @"l", @"l" and @"o"
Run Code Online (Sandbox Code Playgroud) 我正在使用以下内容获取输出:
2013-06-06 11:44:27.325 [2570:907] Rating: 0
2013-06-06 11:44:27.326 [2570:907] Rating: 2
2013-06-06 11:44:27.327 [2570:907] Rating: 3
[rateQuery findObjectsInBackgroundWithBlock:^(NSArray *rateObjects, NSError *error)
{
if( !error )
{
NSLog(@"rateobject %@", rateObjects);
for (id item in rateObjects) {
int ratingVal = [[item objectForKey:@"Rating"] intValue];
NSLog(@"Rating: %d", ratingVal);
}
}
}
];
Run Code Online (Sandbox Code Playgroud)
我想添加数字以获得总数然后除以计数以获得平均"评级".
我试过这个,但显然语法不正确.我想我需要使用NSArray而不是"item":
NSNumber *sum=[[item objectForKey:@"Rating"] valueForKeyPath:@"@sum.floatValue"];
NSLog(@"Rating Sum: %@", sum);
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
Animal是一个BOOL名为属性的类alive.Monkey,Zebra并且Walrus是子类Animal.如果我有一个包含混合实例的NSArray调用zoo实例Monkey,Zebra并且Walrus,我想找到第一个活动Zebra实例,我可能会这样做:
Zebra *zebra;
for (Animal *animal in zoo) {
if ([animal isMemberOfClass:[Zebra class]] && animal.alive) {
zebra = animal;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是编译器在设置时抱怨不兼容的指针类型zebra = animal.如果我像那样做一些铸造zebra = (Zebra *)animal似乎工作,但我不确定在Objective-C中这种铸件是否安全.
处理这种情况的更好方法是什么?
我有以下两个数组.
NSArray *array1=[[NSArray alloc]initWithObjects:@"ABC",@"DEF", nil];
NSArray *array2=[[NSArray alloc]initWithObjects:@"ABC",@"123",@"DEF",@"DEF", nil];
Run Code Online (Sandbox Code Playgroud)
现在我必须搜索每个array1的对象和array2,并需要获取匹配的索引.我的应用程序在array2中包含超过一千个对象.
请建议除了将第二个for循环放在第一个for循环之外的最佳方法
for (int i=0; i<array1.count; i++)
{
//Need to search the [array1 objectAtIndex:i] string in array2 and need to get the matched indexes into an array in best optimised way here.
NSMutableArray *matchedIndexesArray=[[NSMutableArray alloc]init];
NSString *stringToSearch=[array1 objectAtIndex:i];
//here i can put another array like below to get the matched indexes..but is there any optimized way other than this for loop here? or is there any simple inbuilt method to get …Run Code Online (Sandbox Code Playgroud) 如果所有元素都已经是类型,那么转换NSArray为Swift Array类型T很容易T:
let arr1 : NSArray = [1,2,3]
let arr2 = arr1 as? Array<Int> // works
Run Code Online (Sandbox Code Playgroud)
但现在假设一个非同质NSArray的对象不匹配T:
let arr1 : NSArray = [1,2,3,"a"]
let arr2 = arr1 as? Array<Int> // nil, as not all elements are of type Int
Run Code Online (Sandbox Code Playgroud)
我试图实现的是向下过滤掉所有不匹配的元素T.所以在上面的例子中我想得到一个只Array<Int>包含对象的东西[1,2,3].
如何优雅地做到这一点?
在以下示例中,array objectAtIndex:0崩溃,但firstObject产生的值为nil.为什么会这样?
NSArray *array = [NSArray new];
id obj1 = [array firstObject]; // this is giving nil value
id obj2 = [array objectAtIndex:0]; // this line crashes
Run Code Online (Sandbox Code Playgroud) nsarray ×10
objective-c ×9
ios ×4
iphone ×2
casting ×1
cocoa ×1
cocoa-touch ×1
core-data ×1
hash ×1
nsnumber ×1
nspredicate ×1
nsstring ×1
sorting ×1
subclassing ×1