标签: nsmutablearray

将NSMutablearray复制到另一个

我正在尝试复制NSMutableArray到另一个但它没有向我显示任何内容UITableView:

NSMutableArray *objectsToAdd= [[NSMutableArray alloc] initWithObjects:@"one",@"two"];

NSMutableArray *myArray = [[NSMutableArray alloc] initWithObjects:objectsToAdd,nil];

NSMutableArray *list = [[NSMutableArray alloc] init];

[self.list addObjectsFromArray:myArray];
Run Code Online (Sandbox Code Playgroud)

什么都没有出现!怎么了?

它崩溃了我的应用程序,因为我没有对我的nil NSMutableArray如何添加nil?addobject:nil不起作用它崩溃的应用程序:

static NSString * DisclosureButtonCellIdentifier = 
@"DisclosureButtonCellIdentifier";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: 
                         DisclosureButtonCellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
                                   reuseIdentifier: DisclosureButtonCellIdentifier]
            autorelease];
}
NSUInteger row = [indexPath row];

NSString *rowString =nil;

rowString = [list objectAtIndex:row];


cell.textLabel.text = rowString;

cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
[rowString release];
return cell;
Run Code Online (Sandbox Code Playgroud)

iphone copy nsmutablearray nsarray

5
推荐指数
1
解决办法
3万
查看次数

快速枚举使用包含NSDictionary的NSMutableArray

是否可以对包含NSDictionary的NSArray使用快速枚举?

我正在浏览一些Objective C教程,以下代码将控制台踢入GDB模式

NSMutableArray *myObjects = [NSMutableArray array];
NSArray *theObjects = [NSArray arrayWithObjects:@"easy as 1",@"easy as two", @"Easy as Three"];
NSArray *theKeys    = [NSArray arrayWithObjects:@"A",@"B",@"C"];    
NSDictionary *theDict = [NSDictionary dictionaryWithObjects:theObjects forKeys:theKeys];
[myObjects addObject:theDict];

for(id item in myObjects)
{
    NSLog(@"Found an Item: %@",item);
}
Run Code Online (Sandbox Code Playgroud)

如果我用传统的计数循环替换快速枚举循环

int count = [myObjects count];
for(int i=0;i<count;i++)
{
    id item;
    item = [myObjects objectAtIndex:i];
    NSLog(@"Found an Item: %@",item);
}
Run Code Online (Sandbox Code Playgroud)

应用程序在没有崩溃的情况下运行,字典将输出到控制台窗口.

这是Fast Enumeration的限制,还是我错过了一些语言的巧妙?嵌套这样的集合时还有其他陷阱吗?

对于奖励积分,我如何使用GDB自行调试?

cocoa enumeration objective-c nsdictionary nsmutablearray

5
推荐指数
1
解决办法
2万
查看次数

如何将NSMutableArray转换为NSString?

我想将a(或复制?)NSMutableArray转换为a NSString.我想我的问题是我并不真正了解a的结构NSString.转换后我想将它附加到电子邮件正文中.这是我的代码:

- (IBAction)sendEmail
{
    NSLog(@"sendEmail");
    [textView resignFirstResponder];
    [textView1 resignFirstResponder];
    if ([MFMailComposeViewController canSendMail])
    {
        // set the sendTo address
        NSMutableArray *recipients = [[NSMutableArray alloc] initWithCapacity:1];
        [recipients addObject:@"example@yahoo.com"];
        MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
        controller.mailComposeDelegate = self;
        [controller setSubject:@"Iphone Game"];
        NSString *string = [string appendString:[NSString stringWithFormat:"%@", [viewArray objectAtIndex:i]]];
        [controller setMessageBody:string isHTML:NO];
        [controller setToRecipients:recipients];
        [self presentModalViewController:controller animated:YES];
        [controller release];
    }
    else 
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert"
 message:@"Your device is not set up for email." delegate:self …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c nsmutablearray nsarray ios

5
推荐指数
1
解决办法
7126
查看次数

如何从NSMutableArray(iPhone)获得第一个值?

现在我在简单的iPhone应用程序的工作,我已经存储在一定的价值NSMutableArray一样 "{54.399, 196}","{-268.246, 273}".,所以我希望得到54.399的第一indexpath,如何得到这个,请帮助我

提前致谢

arrays iphone nsmutablearray ios

5
推荐指数
1
解决办法
2万
查看次数

使用和不使用容量初始化NSMutableArray

可能重复:
NSMutableArray initWithCapacity细微差别
Objective-c NSArray init与initWithCapacity:0

以下代码行有什么区别?什么是确切的优势和劣势?假设接下来我将做3个addObject操作.

NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity: 5];
NSMutableArray *array = [[NSMutableArray alloc] init];
Run Code Online (Sandbox Code Playgroud)

xcode objective-c nsmutablearray

5
推荐指数
2
解决办法
5530
查看次数

NSMutableArray removeLastObject Exception

根据NSMutableArray文档:

removeLastObjectNSRangeException如果数组中没有对象,则引发一个.

出于某种原因,我似乎能够在空数组上调用此方法,并且不会抛出任何异常.

这是一个测试用例:

- (void)testNSMutableArray
{
    NSMutableArray* arr = [[NSMutableArray alloc] init];
    STAssertTrue([arr count] == 0, @"Array count should be 0");
    STAssertThrows([arr removeLastObject], @"Should throw NSRangeException");
}
Run Code Online (Sandbox Code Playgroud)

这个测试用例在最后一行失败了,并带有以下消息:

[arr removeLastObject] raise(null).应抛出NSRangeException

我在这迷茫吗?文档错了吗?

cocoa-touch exception objective-c nsmutablearray

5
推荐指数
1
解决办法
717
查看次数

优化的阵列移位方法

我有一个NSMutableArray控股,NSStrings例如{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

我希望能够用包装来移动元素.

因此,例如将1移动到中心,移动所有元素,将剩余的元素(越过边界)包裹起来再次开始,反之亦然,例如10到中心.

{7, 8, 9, 10, 1, 2, 3, 4, 5, 6} 和 {6, 7, 8, 9, 10, 1, 2, 3, 4, 5}

是否存在这样的优化sort方法?

sorting objective-c nsmutablearray

5
推荐指数
1
解决办法
1543
查看次数

你为什么有时会把NSArray强制转换为NSMutableArray,有时你不能?

特别:

self.words = (NSMutableArray*)[self.text componentsSeparatedByString:@" "];
Run Code Online (Sandbox Code Playgroud)

只要有分隔符就可以正常工作.我看到该方法返回包含在NSArray中的原始字符串,如果没有的话.这个单元素NSArray固执地拒绝被强制转换为NSMutableArray.

但是,当我这样做时:

self.words = [NSMutableArray arrayWithArray:self.words];
Run Code Online (Sandbox Code Playgroud)

它工作得很好.

这里有什么我想念的吗?从NSArray转换为NSMutableArray是不好的做法吗?

iphone objective-c nsmutablearray nsarray ios

5
推荐指数
1
解决办法
672
查看次数

NSMutableArray中的addObject是复制还是保留?

当您将对象添加到集合中(例如)时NSMutableArray,对象是否被复制(即值语义)或被保留(即引用语义)?

我对示例感到困惑:

NSMutableString *testStr = [@"test" mutableCopy];
NSMutableArray *arrayA = [[NSMutableArray alloc] init];

[arrayA addObject:testStr];
NSLog(@"%@", arrayA);    // output: test

testStr = [@"world" mutableCopy];
NSLog(@"%@", arrayA);    // output: test

// testStr is copied - value semantics

NSMutableArray *testArr = [@[@1, @2] mutableCopy];
NSMutableArray *arrarB = [[NSMutableArray alloc] init];

[arrarB addObject:testArr];
NSLog(@"%@", arrarB);      // output: [1, 2]

[testArr addObject:@3];
NSLog(@"%@", arrarB);      // output: [1, 2, 3]

// testArr is retained - reference semantics
Run Code Online (Sandbox Code Playgroud)

您可以看到:如果对象是NSMutableString,则看起来对象已被复制-您更改对象将不会影响数组中的对象。

但是,如果对象是NSMutableArray,则在更改对象时,数组中的对象也会更改-就像保留对象或通过引用传递一样。 …

objective-c nsmutablearray ios

5
推荐指数
1
解决办法
3894
查看次数

Swift - 将Int64转换为AnyObject for NSMutableArray

嗨,我有一个NSMutableArray,我试试这个:

var ma = NSMutableArray()
let number:Int64 = 8345834344
ma.addObject(number)// Error "Type Int64 does not conform to protocol AnyObject"
Run Code Online (Sandbox Code Playgroud)

如何将Int64变量添加到NSMutableArray()?

casting int64 nsmutablearray swift

5
推荐指数
2
解决办法
5052
查看次数