如何向NSArray添加多个对象?每个对象都具有相同的值.
防爆.
我想将值"SO"添加到我的数组10次
如何获取我已设置所有属性的NSObject,然后将其复制到阵列可以使用的另一个内存块中,以便我可以重新使用原始内存?
我有一个NSString包含一些由未知数量的空白字符分隔的值.例如:
NSString* line = @"1 2 3";
Run Code Online (Sandbox Code Playgroud)
我想分裂NSString成一个NSArray值,像这样:{@"1", @"2", @"3"}.
我希望在计数时得到通知,即.NSArray中的项目数量发生了变化..当然我不需要这个,如果我控制添加和删除数组中的对象.但我不是,它在业务流程模型方面无法预测,并且取决于外部因素.有一些简单优雅的解决方案吗?
编辑:我当然正在纠正这个NSMutableArray ..
我有两个NSArray对象,我想要排序相同.一个包含NSString对象,另一个包含自定义Attribute对象.这是我的"关键"NSArray的样子:
// The master order
NSArray *stringOrder = [NSArray arrayWithObjects:@"12", @"10", @"2", nil];
Run Code Online (Sandbox Code Playgroud)
带有自定义对象的NSArray:
// The array of custom Attribute objects that I want sorted by the stringOrder array
NSMutableArray *items = [[NSMutableArray alloc] init];
Attribute *attribute = nil;
attribute = [[Attribute alloc] init];
attribute.assetID = @"10";
[items addObject:attribute];
attribute = [[Attribute alloc] init];
attribute.assetID = @"12";
[items addObject:attribute];
attribute = [[Attribute alloc] init];
attribute.assetID = @"2";
[items addObject:attribute];
Run Code Online (Sandbox Code Playgroud)
所以,我想要做的是使用stringOrder数组来确定items自定义对象数组的排序.我怎样才能做到这一点?
我有一个关于NSArray和NSMutableArray的问题.我理解两者之间的区别主要是NSArray是不可变的,NSMutableArray是可变的.就我的研究而言,性能也是一样的.有一件事我找不到一个好的答案,那就是NSMutableArray使用的内存比NSArray多,如果NSMutableArray在某种程度上比NSArray更苛刻.
我真的很感激建议和解释.
谢谢Vik
我有一个NSMutableArray oldArray.现在,在某一点上,这个NSMutableArray对象会被另一个对象更新,这个对象NSMutableArray可能具有比前一个更多,更少或相同数量的元素NSMutableArray.
我想比较旧数组和新数组的变化.我想有两个NSArray小号addedArray和removedArray其中将包含已添加和/或删除旧的数组中的元素的索引.
通过一个例子,整个问题将更加清晰:
oldArray = {@"a",@"b",@"d",@"e",@"g"};
newArray = {@"a",@"c",@"d",@"e",@"f",@"h"};
Run Code Online (Sandbox Code Playgroud)
因此,这里删除的对象分别是索引1和4处的@"b"和@"g".并且在索引1,4和5处添加的对象是@"c",@"f"和@"h"(删除第一个对象,然后添加).
因此,
removedArray = {1,4}; and addedArray = {1,4,5};
Run Code Online (Sandbox Code Playgroud)
我想要一种有效的方法来获得这两个数组 - removedArray以及addedArray来自旧的和新的NSMutableArray.谢谢!如果问题不是很容易理解,我愿意提供更多信息.
编辑1
如果我解释一下我想要用什么,也许会更清楚.
实际上我正在使用的是在加载tableview之后使用方法insertRowsAtIndexPaths和removeRowsAtIndexPaths动画更新UITableView ,以便用户可以看到删除的行熄灭并且新行进入.tableview存储用户可以使用的收藏夹元素添加或删除.添加一些收藏夹后删除一些; 当用户返回收藏夹表视图时,将显示动画.
编辑2
本来应该提到过这个,但是旧数组和新数组中的元素都是按升序排列的.只有删除或添加的指标才有意义.订单无法更改.恩.{@"b",@"a",@"c",@"d"}不能是数组.
我有这个代码:
var NToDel:NSArray = []
var addInNToDelArray = "Test1 \ Test2"
Run Code Online (Sandbox Code Playgroud)
如何添加addInNToDelArray的NToDel:NSArray?
当Swift Optimization Level设置为None [-Onone]时(默认为debug),以下(有点人为的)代码可以正常工作:
let nsa = NSArray(array: ["foo", "bar"])
let a = nsa as [String]
Run Code Online (Sandbox Code Playgroud)
但是,当设置为Fastest [-O](默认为发布)时,应用程序在运行时崩溃(崩溃日志).
我幸运地发现我可以通过这样做来解决这个问题:
let a = nsa as [AnyObject] as [String]
Run Code Online (Sandbox Code Playgroud)
我的问题是双重的:
这似乎是一个错误.我没有向Apple报告.如果其他人想花时间这样做,请做!
在NSArray.h中,我看到了这样的界面
@interface NSArray<ObjectType>
Run Code Online (Sandbox Code Playgroud)
有什么意义<ObjectType>?