我有以下代码:
NSLog(@"items: %d", [items count]);
NSLog(@"allObjects: %d", [self.allObjects count]);
[self.allObjects addObjectsFromArray:items];
NSLog(@"allObjects: %d", [self.allObjects count]);
Run Code Online (Sandbox Code Playgroud)
其中产生以下输出:
items: 7
allObjects: 0
allObjects: 0
Run Code Online (Sandbox Code Playgroud)
items是NSArray
allObjects是一个NSMutableArray.
我很困惑为什么项目中的对象没有被添加到allObjects.我希望它很简单,但我的理解中有一个漏洞.
我写的应用程序为我的iPhone,我想保存一些NSmutablearray文件,并在以后加载它.我读到有关NSArchiver的信息,但我不明白如何使用我的calss:
@interface Shop : NSObject
{
NSString *m_Name;
NSString *m_Description;
NSString *m_Category;
NSString *m_BestSaleDesc;
NSString *m_AdditionalInfo;
NSInteger m_ShopId;
NSInteger m_ChainId;
NSMutableArray *m_SalesList;
NSData *m_Icon;
bool m_Filtered;
bool m_Deleted;
bool m_Hidden;
}
Run Code Online (Sandbox Code Playgroud)
有人可以给我一些示例代码,说明如何将calss Shop的NSmutableArray保存到文件名ShopFile.sav,然后再如何将它再次加载到NSmutableArray对象.
非常感谢
如何在ios中定义2x2或3X ..数组?像这样
[name=john , age=21 , num=1]
[name=max , age=25 , num=2]
[name=petter , age=22 , num=3]
Run Code Online (Sandbox Code Playgroud)
使用NSMutableArray中的列,您只能添加带有对象的行; 我想要这个数组[] []
执行时
[self.blockViews addObject:curBlockView];
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
2011-07-01 13:35:26.240 Block Breaker [42061:207] - [__ NSArrayI addObject:]:无法识别的选择器发送到实例0x4e037a0
我对Objective-C很新.这是我的init方法吗?
//
// GameEngine.h
// Block Breaker
//
// Created by Chris Muench on 7/1/11.
// Copyright 2011 N/A. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface GameEngine : NSObject {
NSMutableArray *blockViews;
int numBlockRows;
int score;
}
@property (nonatomic, copy) NSMutableArray *blockViews;
@property int numBlockRows;
@property int score;
- (void) setup;
- (void) setupBlocks;
@end
//
// GameEngine.m
// Block Breaker
//
// Created by …Run Code Online (Sandbox Code Playgroud) 对不起,如果这是基本的,但我无法理解这一点.我有一个数组,想要遍历它中的每个对象,看看它是否是等于:@"某事".如果试过这个,但它会崩溃:
for (int i = 0; i < ([myNSMutableArray count]); i++) {
NSLog(@"i = %i", i);
if ([[myNSMutableArray objectAtIndex:i] isEqualToString:@"something"]) {
...
} else {
...
}
}
Run Code Online (Sandbox Code Playgroud)
我去拿:
2011-07-14 13:38:40.983 MNs[21416:207] i = 0
2011-07-14 13:38:40.985 MNs[21416:207] -[__NSArrayM isEqualToString:]: unrecognized selector sent to instance 0x4c976f0
2011-07-14 13:38:40.987 MNs[21416:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM isEqualToString:]: unrecognized selector sent to instance 0x4c976f0'
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感谢.提前致谢!
编辑:
对不起我忘记了.这就是我创建数组的方式:
NSMutableArray *myNSMutableArray = [[NSMutableArray alloc] init];
for (int x = 0; …Run Code Online (Sandbox Code Playgroud) 我有一个包含4个词典的数组,其键为@"首选项",如下所示
(
{
preference = Nose;
},
{
preference = "Heart rate";
},
{
preference = Glucose;
},
{
preference = Food;
}
)
Run Code Online (Sandbox Code Playgroud)
现在我想检索这些字典值的数组,如"
(
Nose, Heart rate, Glucose, Food
)
Run Code Online (Sandbox Code Playgroud)
我怎么得到它..提前谢谢
我创建了一个NSMutableArray对象
NSMutableArray *array = [[NSMutableArray alloc]init];
Run Code Online (Sandbox Code Playgroud)
和使用的方法componentsSeperatedByString:as
array = [myString componentsSeperatedByString:@"++"];
Run Code Online (Sandbox Code Playgroud)
但当我在阵列上执行操作时,
[array removeAllObjects];
Run Code Online (Sandbox Code Playgroud)
我得到了异常,例如"removeAllObjects无法识别的选择器发送到实例".
我通过修改代码解决了这个问题,
NSArray *components = [myString componentsSeperatedByString:@"++"];
array = [NSMutableArray arrayWithArray:components];
Run Code Online (Sandbox Code Playgroud)
我之后可以执行像这样的操作
[array removeAllObjects];
Run Code Online (Sandbox Code Playgroud)
我怀疑为什么NSMutableArray自动转换为NSArray?如何避免这样的自动类型转换,以防止异常?提前致谢....
我有NSMutableArray对象Link有参数Byte taskOne.我必须通过此参数对对象进行排序.
for (Byte i = 0; i < [linksArray count]-1; i++) {
Link *l = [linksArray objectAtIndex:i];
Link *lNext = [linksArray objectAtIndex:i+1];
if (l.taskOne >= lNext.taskOne) {
NSLog(@"%d >= %d", l.taskOne, lNext.taskOne);
[linksArray replaceObjectAtIndex:i withObject:lNext];
[linksArray replaceObjectAtIndex:i+1 withObject:l];
}
}
Run Code Online (Sandbox Code Playgroud)
这给了我错误的结果,但我不知道出了什么问题.谢谢你的帮助.
有没有方法之间有什么区别setObject:forKey和setObject:forKeyedSubscript?
我正在使用Objective-C NSMutableArray.两者似乎对我的功能都一样.
我有一个数组,NSMutableArray*stringArray看起来像这样
stringArray =
[0]String1
[1]String2
[2]String3
[3]String4
[4]String5
[5]String6
Run Code Online (Sandbox Code Playgroud)
我如何根据偶数/奇数索引将此数组拆分为两个数组?
例:
NSMutableArray *oddArray = ([1], [3], [5]);
NSMutableArray *evenArray = ([0], [2], [4]);
Run Code Online (Sandbox Code Playgroud)
提前致谢!
nsmutablearray ×10
objective-c ×10
iphone ×3
nsarray ×3
cocoa-touch ×2
arrays ×1
ios ×1
nsdictionary ×1
properties ×1
sorting ×1