当我NSArray使用+时[NSArray arrayWithObjects:],它会复制这些对象吗?如果我在将对象添加到数组后释放它们,我会遇到问题吗?
我有联系人数组,每个联系人都是字典.
每个联系人都有一个键"contact_type",它是一个NSNumber.联系人类型基本上代表它是Facebook,LinkedIn还是邮件联系人等.我的搜索数组只包含了contactNtype的NSNumber.
我想要的是制作一个临时的联系人数组,我想用我的搜索数组搜索.
我在使用NSPredicate创建搜索的联系人数组时遇到了麻烦.有人可以指导我如何做到这一点吗?
什么是一种简单的方法将NSArray中的4000个对象分成多个数组,每个数组包含30个对象?
所以现在我有一个NSArray*东西,其中[stuff count] = 4133.
我想创建一个包含30个对象数组的新数组.什么是循环的好方法,将*东西分解为新的30个对象数组,并将它们放在更大的数组中?
显然,最后一个数组中不会有30个(它将有余数)但我需要正确处理它.
合理?如果有一种有效的方法可以让我知道.
我会知道如何检索NSArray使用a 的索引NSPredicate?
NSArray *array = [NSArray arrayWithObjects:
@"New-York City",
@"Washington DC",
@"Los Angeles",
@"Detroit",
nil];
Run Code Online (Sandbox Code Playgroud)
我应该使用哪种方法来获得"Los Angles"的索引,只给出一个NSString
NB:@"Los An"或者@"geles"应该返回相同的索引.
这可能是一个简单的问题,但为什么在我的课堂上实施NSCopying协议,我得到zone == nil
- (id)copyWithZone:(NSZone *)zone
{
if (zone == nil)
NSLog(@"why this is allways nil");
(...)
}
Run Code Online (Sandbox Code Playgroud)
对于带有对象的复制数组,使用此方法调用此方法.
[[NSArray alloc] initWithArray:myArray copyItems:YES]];
Run Code Online (Sandbox Code Playgroud) 我有2个Nsarray,其中2个数组的对象相同可能是对象的索引不同,但它应该打印两个是相等的,不管有哪些索引
NSArray *arr1 = [[NSArray alloc]initWithObjects:@"aa", @"bb", @"1", @"cc", nil];
NSArray *arr2 = [[NSArray alloc]initWithObjects:@"bb", @"cc", @"1", @"aa", nil];
if ([arr1 isEqualToArray:arr2])
{
NSLog(@"Equal");
}
else
{
NSLog(@"Not equal");
}
Run Code Online (Sandbox Code Playgroud)
上面的代码打印'不相等', 但它应打印'等于'.我怎样才能做到这一点?
我有一个NSArray,我想将它分成两个相等的部分(如果奇数"计数"然后添加到后一个新数组) - 我想把它分成"中间"可以这么说.
以下代码完全符合我的要求,但有更好的方法吗?:
// NOTE: `NSArray testableArray` is an NSArray of objects from a class defined elsewhere;
NSMutableArray *leftArray = [[NSMutableArray alloc] init];
NSMutableArray *rightArray = [[NSMutableArray alloc] init];
for (int i=0; i < [testableArray count]; i=i+1) {
if (i < [testableArray count]/2) {
[leftArray addObject:[testableArray objectAtIndex:i]];
}
else {
[rightArray addObject:[testableArray objectAtIndex:i]];
}
}
Run Code Online (Sandbox Code Playgroud)
一旦leftArray和rightArray被制作出来,我就不会改变它们,所以它们不需要是"可变的".我认为可能有一种方法可以使用ObjectsAtIndexes方法或一些快速枚举方法来完成上述代码?但是我无法使用以下代码(或其他变体):
NSArray *leftArray = [[NSArray alloc] initWithObjects:[testableArray objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(????, ????)]]];
NSArray *rightArray = [[NSArray alloc] initWithObjects:[testableArray objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(????, ????)]]];
Run Code Online (Sandbox Code Playgroud)
有没有人知道我是否朝着正确的方向前进或指向正确的方向?
谢谢!
我有一个NSArray,其中填充了NSMutableArray中的对象.这些对象中的大多数具有整数值,如"1","2","3","4","5",有时会有"home","far left"或"far right"这样的名称.我正在尝试使用sortedArrayUsingSelector在Objective C中对此数组进行排序:@selector(compare :)在数组中少于10个项目时工作正常.但是当它还有更多我开始得到"1","10","11","12","2","3"类型的东西.非常感激任何的帮助.代码不应返回任何内容.它只需要排序并继续前进.
原始代码:
presetNamesSort = [[[NSMutableArray alloc]init]retain];
presetNamesSort = [presetNames sortedArrayUsingSelector:@selector(compare:)];
Run Code Online (Sandbox Code Playgroud) 如何将字符串拆分@"Hello"为:
'H','e','l','l','o'要么:
@[@"H", @"e", @"l", @"l", @"o"]这是整个崩溃日志.EXC_CORPSE_NOTIFY异常通知的含义是什么?
我必须更换一些关于我们公司的字符串.
Incident Identifier: 40BD3A10-43A5-4F0D-A283-218E1D3BEE46
CrashReporter Key: 3d8d75a8f5eeb7c3d28d52883b92ed4e0fb2529e
Hardware Model: iPhone7,1
Process: XxxxxXxxApp [13539]
Path: /private/var/mobile/Containers/Bundle/Application/148C5049-8883-4E9D-BB98-5498EEA95191/XxxxxXxxApp.app/XxxxxXxxApp
Identifier: com.Lotum.MCOLotumMobile
Version: 7.0.8.0 (7.0.8)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
Date/Time: 2016-01-15 11:22:25.25 +0800
Launch Time: 2016-01-15 10:41:58.58 +0800
OS Version: iOS 9.2 (13C75)
Report Version: 105
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 16
Filtered syslog:
None found
Last Exception Backtrace:
0 CoreFoundation 0x1840c5900 __exceptionPreprocess + 124
1 libobjc.A.dylib 0x183733f80 objc_exception_throw …Run Code Online (Sandbox Code Playgroud) nsarray ×10
objective-c ×9
ios ×6
iphone ×3
cocoa-touch ×2
cocoa ×1
crash ×1
equals ×1
ipad ×1
nscopying ×1
nsdictionary ×1
nspredicate ×1
nsstring ×1
xcode ×1