如何检查变量是NSArray还是NSMutableArray?
有人可以告诉我排序NSMutableArray的代码吗?我有以下NSMutableArray:
NSMutableArray *arr = [[NSMutableArray alloc] init];
Run Code Online (Sandbox Code Playgroud)
具有诸如"2","4","5","1","9"等元素,它们都是NSString.
我想按降序对列表进行排序,以便最大值整数在列表中最高(索引0).
我尝试了以下方法:
[arr sortUsingSelector:@selector(compare:)];
Run Code Online (Sandbox Code Playgroud)
但它似乎没有正确地对我的价值进行排序.
有人能告诉我代码正确地做我想要完成的事情吗?谢谢!
我有一个NSMutableArray,只需要对象[0:5].是否有一种简单的切片方法?可以在索引后删除所有对象吗?我可以将子数组复制到另一个NSMutableArray吗?
这个问题看似简单,但我正在寻找最有效和最友好的方式.
假设我有一个Person对象数组.每个人都有一个由头发颜色代表的头发颜色NSString.然后我们说我想从数组中删除头发颜色为棕色的所有Person对象.
我该怎么做呢?
请记住,您无法从枚举的数组中删除对象.
我正在为现有网站创建一个应用程序.它们目前具有以下格式的JSON:
[
{
"id": "value",
"array": "[{\"id\" : \"value\"} , {\"id\" : \"value\"}]"
},
{
"id": "value",
"array": "[{\"id\" : \"value\"},{\"id\" : \"value\"}]"
}
]
Run Code Online (Sandbox Code Playgroud)
它们在使用Javascript转义\字符后解析.
我的问题是当我使用以下命令在iOS中解析它时:
NSArray *result = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&localError];
Run Code Online (Sandbox Code Playgroud)
这样做:
NSArray *Array = [result valueForKey:@"array"];
Run Code Online (Sandbox Code Playgroud)
而不是Array我得到的NSMutableString对象.
该网站已经投入生产,因此我无法要求他们更改现有结构以返回正确的JSON对象.对他们来说这将是很多工作.
所以,直到他们改变底层stucture,有没有什么办法可以让它工作在iOS像他们做与javascript他们website?
任何帮助/建议对我都非常有帮助.
我想将NSStrings的NSMutableArray添加到我的核心数据模型中的一个实体中.问题是这不是Core Data中支持的类型.
我尝试制作一个转换属性,但问题是我看不到将NSMutableArray转换为NSData,然后从NSData转回NSMutableArray.有没有人知道如何解决这个问题?
(我知道我可以存档数组,但我不想这样做,我希望它存在于我的模型中).
我有一个NSMutableArray对象,我想添加自定义方法.我尝试了子类化NSMutableArray但是当我尝试使用count方法获取对象数时,我得到一个错误,说"只为抽象类定义了方法".为什么count方法不会被继承?
我在其他地方读到如果我想使用它们,我必须将一些NSMutableArray方法导入我的自定义类.我只想为NSMutableArray类添加一个自定义方法.我应该将NSMutableArray子类化,还是应该做其他事情?
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);
NSMutableArray *tempPeoples=[[NSMutableArray alloc]init];
for(int i=0;i<nPeople;i++){
ABRecordRef i1=CFArrayGetValueAtIndex(allPeople, i);
[tempPeoples addObject:i1];
// [peoples addObject:i1];
}// end of the for loop
peoples=[tempPeoples copy];
Run Code Online (Sandbox Code Playgroud)
此代码提供异常b/c我想将NSMutableArray转换为NSArray请帮助
嗨我正在尝试从餐馆对象创建一个fourates列表,我的应用程序有一个不同的餐厅列表,我希望能够为用户添加有利的餐厅,这个代码不起作用
- (IBAction)toggleFav:(id)sender {
Restaurant *resto = [self restaure];
NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[dic setObject:resto.price forKey:@"restoPrice"];
[dic setObject:resto.restaurantId forKey:@"restaurantId"];
[dic setObject:resto.restoAbout forKey:@"restoAbout"];
[dic setObject:resto.restoAddress forKey:@"restoAddress"];
[dic setObject:resto.restoBeverages forKey:@"restoBeverages"];
[dic setObject:resto.restoCategory forKey:@"restoCategory"];
[dic setObject:resto.restoEmail forKey:@"restoEmail"];
[dic setObject:resto.restoLogo forKey:@"restoLogo"];
[dic setObject:resto.restoName forKey:@"restoName"];
[dic setObject:resto.restoPhone forKey:@"restoPhone"];
[dic setObject:resto.restoCity forKey:@"restoCity"];
NSArray *dicArray = [dic allKeys];
if([sender isSelected]){
//...
[sender setSelected:NO];
NSMutableArray *array = [[[NSUserDefaults standardUserDefaults] objectForKey:@"restoName"] mutableCopy];
[array removeObject:dicArray];
[[NSUserDefaults standardUserDefaults] setObject:array forKey:@"restoName"];
} else {
//...
[sender setSelected:YES];
NSMutableArray *array = …Run Code Online (Sandbox Code Playgroud) 通常,"可变数组"类被实现为简单数组的包装器.当您在结尾添加元素时,包装器会分配更多内存.这是一种常见的数据结构,各种操作的性能是众所周知的.你得到O(1)元素访问,O(N)插入和删除,或O(1)(平均)插入和删除数组的末尾.但是NSMutableArray还有别的.例如,文档说[强调我的]:
注意:数组上的大多数操作都需要花费一些时间:访问元素,在任一端添加或删除元素,以及替换元素.将元素插入数组的中间需要线性时间.
那究竟是NSMutableArray什么?这是在某处记录的吗?
nsmutablearray ×10
objective-c ×8
ios ×5
nsarray ×5
iphone ×2
cocoa-touch ×1
core-data ×1
foundation ×1
json ×1
methods ×1
nsstring ×1
slice ×1
sorting ×1
subclass ×1