如何检查是否NSMutableArray为空?
我犯了一个错误,同时创造一个TableView中class,并且意外地保持我@property的copy,当我定义它:
@property (copy, nonatomic) NSMutableArray *words;
Run Code Online (Sandbox Code Playgroud)
我正确地初始化了数组:(注意这是第三次尝试,所以请忽略我不使用mutableCopy和其他更好的方法这样做的事实)
NSArray *fixedWords = @[@"Eeny", @"Meeny", @"Miny", @"Moe", @"Catch", @"A", @"Tiger", @"By", @"His", @"Toe"];
NSMutableArray *mutWords = [[NSMutableArray alloc] initWithArray:fixedWords];
self.words = mutWords;
Run Code Online (Sandbox Code Playgroud)
但是当我后来重新排序数组时,它在removeObjectAtIndex行崩溃:
id object = [self.words objectAtIndex:fromIndexPath.row];
NSUInteger from = fromIndexPath.row;
NSUInteger to = toIndexPath.row;
[self.words removeObjectAtIndex:from];
Run Code Online (Sandbox Code Playgroud)
带有错误消息
unrecognized selector sent to instance
Run Code Online (Sandbox Code Playgroud)
进行了大量的挖掘,以确定这是因为复制意味着分配NSMutableArray会导致创建标准(不可变)NSArray.任何人都可以解释为什么这是正确的行为?
当需要过滤NSArray以获取返回的数组中的项的子集时,哪种方法更频繁且边缘情况更快?
如何检查变量是NSArray还是NSMutableArray?
我已经在SO上查看了使用键值观察的示例NSArray(或者NSMutableArray),显然你需要使用NSArrayController(不像KVO我不熟悉的),但我没有找到如何执行此操作的具体示例.有人可以解释一些示例代码吗?
例如,如果我有一个GameModel代表其播放器名称NSArray (playerNameArray)的a NSStrings.我想观察那些字符串(视图控制器观察模型的数据)来更新视图中的各种内容.
如何获得播放器名称数组已更改的通知?
编辑:iOS SDK甚至支持NSArrayController吗?如果没有,还有另一种方式吗?
iphone objective-c key-value-observing nsarray nsarraycontroller
有人可以告诉我排序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)
但它似乎没有正确地对我的价值进行排序.
有人能告诉我代码正确地做我想要完成的事情吗?谢谢!
我想[NSDecimalNumber numberWithInt:i]使用for循环添加到数组.
它是硬编码的:
NSArray *customTickLocations = [NSArray arrayWithObjects: [NSDecimalNumber numberWithInt:1],[NSDecimalNumber numberWithInt:2],[NSDecimalNumber numberWithInt:3],[NSDecimalNumber numberWithInt:4],[NSDecimalNumber numberWithInt:5],[NSDecimalNumber numberWithInt:6],[NSDecimalNumber numberWithInt:7],[NSDecimalNumber numberWithInt:8],[NSDecimalNumber numberWithInt:9],[NSDecimalNumber numberWithInt:10],[NSDecimalNumber numberWithInt:11],[NSDecimalNumber numberWithInt:12],nil];
Run Code Online (Sandbox Code Playgroud)
我想这样,但我只能在这里添加一个对象....
for (int i=0; i<totalImagesOnXaxis; i++)
{
customTickLocations = [NSArray arrayWithObject:[NSDecimalNumber numberWithInt:i]];
}
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题,先谢谢你,Madan
我有这样一个数组:
array: (
(
"http://aaa/product/8_1371121323.png",
"http://aaa/product/14_1371123271.png"
),
(
"http://aaa/product/9_1371121377.png"
)
)
Run Code Online (Sandbox Code Playgroud)
我必须像这样从那个创建另一个数组
array: (
"http://aaa/product/8_1371121323.png",
"http://aaa/product/14_1371123271.png",
"http://aaa/product/9_1371121377.png"
)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?是否可以组合所有对象并使用一些字符串将它们分开?
这个问题看似简单,但我正在寻找最有效和最友好的方式.
假设我有一个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?
任何帮助/建议对我都非常有帮助.