ios - 这段代码是错误的吗?

标签 ios objective-c

我即将制作 iPhone 应用程序。 我遇到了一个问题。

NSArray *array2 = [NSArray alloc];
[array2 initWithObjects:@"a",@"b",@"c",@"d",nil];
NSMutableArray *arr3 = [NSArray ArrayWithObjects:@"e",@"f",@"g",nil];
NSUInteger uInt1 = [array2 count];
uInt1 = [arr3 count];
NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithArray:array2];

NSLog(@"count : %d", [mutableArray count]);

这段代码有错吗? 我想我对c语言很熟悉。 但是很难用像这样的c-objective类来处理 NS 家族....

第一次接触iPhone编程..

最佳答案

取决于您要执行的操作,但从句法上讲,它应该更像这样:

NSArray *array1 = [[NSArray alloc] initWithObjects:@"a",@"b",@"c",@"d",nil];
NSMutableArray * array2 = [NSMutableArray arrayWithObjects:@"e",@"f",@"g",nil];
NSUInteger count1 = [array1 count];
NSUInteger count2 = [array2 count];
NSMutableArray * array3 = [[NSMutableArray alloc] initWithArray:array2];

注意事项:

  • 虽然从技术上讲,您可以在两个单独的行上执行 alloc,然后执行 NSObject 的初始化,但通常您会像上面的第 1 行那样一起执行它们。
  • 第二行使用类方法实例化 NSMutableArray。在幕后(通常),这些类型的方法将执行分配和初始化并返回一个对象。但是在(稍微)更高级的情况下,它们可能会返回 nil,这意味着无法创建对象。例如,您想实例化一个 AVCaptureDevice,但一个不存在。
  • 您不能创建一个 NSArray 并将其分配给一个 NSMutableArray,但您可以采用另一种方式——NSMutableArray 是 NSArray 的一个子类。

关于ios - 这段代码是错误的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30727597/

相关文章:

objective-c - 在可变 Cocoa 对象上实现 -hash 的技术

objective-c - 使 UIWebView 成为 UITableviewCell 的一部分

ios - 如何支持相同应用程序但不同环境的通用链接?

ios - Nativescript Apple 应用商店 仅限 iPhone

android - Stack 底部 Widget 的 Flutter 手势检测

ios - 如何检查具有多个值的枚举类型参数是否具有特定的枚举类型

objective-c - 调试 : Obtain a list of all instance variables of an object (unknown type)

ios - 如何使用 AttributedString 正确设置 UILabel 的行高?

ios - 无法从 Parse 加载图像 - Swift 动态转换失败

iphone - UIImageView 旋转动画带易出