我需要帮助解除我的自定义对象的NSMutableArray.我需要保留数组,所以我在.h中添加了一个属性,然后在.m文件的dealloc中释放它.当我向数组添加对象时,我执行以下操作:
myarray = [[NSMutableArray alloc] init];
[myarray addObject:[[mycustomObject alloc]initWithObject:obj1]];
[myarray addObject:[[mycustomObject alloc]initWithObject:obj2]];
Run Code Online (Sandbox Code Playgroud)
现在,我不知道如何发布mycustomobject.如果我执行以下操作:
[myarray addObject:[[[mycustomObject alloc]initWithObject:obj1] autorelease]];
Run Code Online (Sandbox Code Playgroud)
我稍后访问数组时会遇到问题.请指教.
我有以下代码填充数组(这是在循环中):
NSString *code = [NSString stringWithFormat:@"%@ - (%@) %@",[tempDic objectForKey:@"state"],[tempDic objectForKey:@"city"],[tempDic objectForKey:@"name"]];
[tempArrayOfAirports removeObjectIdenticalTo:code]; // checks for a previous object, then removes if found
[tempArrayOfAirports addObject:code]; //adds the object
Run Code Online (Sandbox Code Playgroud)
以前,代码只是:
NSString *code = [tempDic objectForKey:@"city"];
[tempArrayOfAirports removeObjectIdenticalTo:code];
[tempArrayOfAirports addObject:code];
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,但由于某种原因,更改"代码"使其无法找到其他相同的字符串.我的结果是一个包含许多重复对象的巨大数组.
我使用此代码来检查我的NSMutableArray中是否存在任何对象,如果是,我将它们全部删除但它崩溃了虽然有对象为什么?
if([NSMutableArray1 count]==1)
{
[poemoptionslist removeAllObjects];
}
if ([NSMutableArray1 count]==0)
{
[poemoptionslist addObject: final1];
}
Run Code Online (Sandbox Code Playgroud)
控制台输出
2010-10-18 03:42:13.166 app1 [33398:207] *由于未捕获的异常'NSInternalInconsistencyException'终止应用程序,原因:' - [__ NSCFArray removeObjectAtIndex:]:发送到不可变对象的mutating方法'*第一次调用时调用堆栈:(0 CoreFoundation
0x02e55b99 exceptionPreprocess + 185 1 libobjc.A.dylib
0x02fa540e objc_exception_throw + 47 2 CoreFoundation
0x02e0e238 + [NSException raise:format:arguments:] + 136 3
CoreFoundation
0x02e0e1aa + [NSException raise:format:] + 58 4
CoreFoundation
0x02e4d3c1 - [__NSCFArray removeObjectAtIndex:] + 193 5
CoreFoundation
0x02dfe973 - [NSMutableArray removeAllObjects] + 83 6
poemsoflove
0x0004dc8d - [submitpoem submitpoem:] + 18560 7 UIKit
0x003b77f8 …
我有一个NSMtringArray的NSString对象.我如何创建一个NSString,它由该数组中的所有元素组成,中间用分号连接在一起?
例如:
array = "hello","hi","bye",nil;
output = "hello;hi;bye";
Run Code Online (Sandbox Code Playgroud) 我使用NSMutableArray来存储我的视图上显示的一些UIView对象.我正在使用NSTimer连续调用一个方法来检查该数组的内容并收到一些错误.
这是控制台的堆栈跟踪
2011-03-15 15:23:26.556 something[8166:207] *** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x5d32140> was mutated while being enumerated.(
"<PDColoredProgressView: 0x5a1c910; baseClass = UIProgressView; frame = (10 98; 20 20); transform = [0, -1, 1, 0, 0, 0]; opaque = NO; tag = 5; layer = <CALayer: 0x5a1a3e0>>"
)'
*** Call stack at first throw:
(
0 CoreFoundation 0x023a0919 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x024ee5de objc_exception_throw + 47
2 CoreFoundation 0x023a03d9 __NSFastEnumerationMutationHandler + 377
3 something …Run Code Online (Sandbox Code Playgroud) 我需要在不同的数组中存储多达1.000.000个双精度值(在计算运行期间).到目前为止,我正在使用,NSMutableArray但看起来内存使用量很大.一个想法是使用一个c数组,以避免在中存储对象NSMutableArray.有没有办法粗略估计NSMutableArray vs.和c-array的内存使用情况?(我找不到任何关于 - 对象的大小NSNumber与像double或float这样的原语的信息.
谢谢.
我不明白这段代码发生了什么:
sortedArray是NSMutableArray,为空,因此,sortedArray.count的值为0.
Run Code Online (Sandbox Code Playgroud)for (NSUInteger i = 0 ; i < (sortedArray.count -1) ; i++) NSLog(@"Apparently %d < %d ( [sortedArray count] %d)", i, sortedArray.count-1, [sortedArray count] );
因此,我们永远不应该进入循环,但我在日志中看到以下内容:
2014-01-21 12:11:16.433 AppName [445:60b]显然0 <-1([sortedArray count] 0)
有没有人知道什么可以触发问题?
我有一个包含多个字典的数组:
{
highRate = "600.49";
hotelId = 439607;
hotelRating = "2.5";
latitude = "12.97153";
longitude = "80.15096";
lowRate = "600.49";
name = "Hotel Kingss Park";
proximityDistance = "17.999475";
thumbNailUrl = "http://images.travelnow.com/hotels/7000000/6510000/6500300/6500296/6500296_3_t.jpg";
tripAdvisorRating = "4.0";
},
{
highRate = "990.0";
hotelId = 327929;
hotelRating = "2.0";
latitude = "13.06931";
longitude = "80.2706";
lowRate = "450.45";
name = "Mallika Residency";
proximityDistance = "1.6274245";
thumbNailUrl = "http://images.travelnow.com/hotels/3000000/2960000/2958400/2958303/2958303_2_t.jpg";
tripAdvisorRating = "2.5";
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用lowRate键对此数组进行排序.
NSSortDescriptor *rating_Sort = [NSSortDescriptor sortDescriptorWithKey:@"lowRate" ascending:NO];
NSArray *descriptorArray = …Run Code Online (Sandbox Code Playgroud) 我想从nsmutablearray中删除重复项.
数组结构: -
Run Code Online (Sandbox Code Playgroud)( { "act_end_date" = ""; "act_entry_date" = "13/11/2014"; "act_recurrrance_type" = Daily; "act_start_date" = "2014-11-13"; "row_id" = 0; "act_id" = 2; } { "act_end_date" = ""; "act_entry_date" = "13/11/2014"; "act_recurrrance_type" = Daily; "act_start_date" = "2014-11-13"; "row_id" = 1; "act_id" = 2; } { "act_end_date" = ""; "act_entry_date" = "16/11/2014"; "act_recurrrance_type" = Daily1; "act_start_date" = "2014-11-15"; "row_id" = 2; "act_id" = 3; } )
我想要的是检查数组包含任何具有相同act_id的字典.如果是,则删除第一个字典.即上述数组的预期结果: -
(
{
"act_end_date" = "";
"act_entry_date" = "13/11/2014";
"act_recurrrance_type" = Daily;
"act_start_date" = …Run Code Online (Sandbox Code Playgroud) 请帮我理解这一点,但我有一个NSMutableArray,其中NSLog包含以下内容:
(
(
{
day = 0;
"end_time" = "21:00";
},
{
day = 0;
"end_time" = "21:00";
},
{
day = 0;
"end_time" = "21:00";
}
)
)
Run Code Online (Sandbox Code Playgroud)
当我执行时[array count],它返回1而不是3.我在数组中看到3个对象,为什么它认为只有1个对象?
也许我不理解?谢谢