标签: nsarray

有没有办法将像CGPoint(或任何自己创建的)的标量类型放入NSArray中?

可能我可以创建一个将CGPoint作为实例变量保存的类,就像包装器一样.那有意义吗?不过,我对此感到不舒服.我希望有更好的解决方案.

如何自行创建标量类型?喜欢MyCoolScalarType?

iphone cocoa-touch uikit nsarray

0
推荐指数
1
解决办法
1407
查看次数

使用NSArray的makeObjectsPerformSelector来产生副作用

我在Objective-C程序中有一个FoA的NSArray.我想调用每个Foo的doIt函数,但是,根据文档,NSArray的makeObjectsPerformSelector函数不允许修改原始Foos .当调用doIt时,doIt选择器为每个Foo更改m数据成员.如何在NSArray中的每个Foo上有效地执行此功能?

@interface Foo : NSObject {
    NSString *m;
}

@property (nonatomic, retain) NSString *m;

-(void)doIt;

@end
Run Code Online (Sandbox Code Playgroud)

side-effects objective-c nsarray

0
推荐指数
1
解决办法
618
查看次数

NSString"预期':'之前'''令牌"错误

我的方法旨在从输入字符串中提取游戏级别的信息.输入指定2D阵列播放区域的大小,以及2D阵列中的哪些点处存在的项目.

例如,"4,3.a,b,c.d,e,f.g,h,i,j,k,l"将包含4列和3行,看起来像这样(没有连字符):

一个--- --- d ---克Ĵ

B ---电Ë---高---ķ

Ç--- F --- I ---升

代码工作正常,直到最后一行,我得到错误:"预期':'之前'''令牌".

我一直试图解决这个问题,所以如果我错过了一些愚蠢的事情,我会很尴尬!任何帮助将非常感激.

-(void)readLevelDataFromString:(NSString*)inputString {
    //remove spaces from the input
    NSString *tempString = [inputString stringByReplacingOccurrencesOfString:@" " withString:@""];

    //make mutable
    NSMutableString *levelDataString = [NSMutableString stringWithString:tempString];

    //trim first 4 characters, which we don't need
    [levelDataString deleteCharactersInRange:NSMakeRange(0, 4)];

    //separate whole string into an array of strings, each of which contains information on the particular column
    NSArray *levelDataStringColumns = [levelDataString componentsSeparatedByString:@"."];

    NSAssert([levelDataStringColumns count] == numColumns, @"In the level data string, the number …
Run Code Online (Sandbox Code Playgroud)

compiler-errors objective-c nsstring nsarray

0
推荐指数
1
解决办法
182
查看次数

iOS indexOfObjectIdenticalTo:不适用于字符串

我已经看到了关于NSArray indexOfObjectIdenticalTo:方法的类似问题,但我希望我的问题只会产生简单的答案.搜索以编程方式构建的字符串是否无用?

NSArray* theArray = [[NSArray alloc] initWithObjects:@"John", nil];
NSString* searchString1 = @"John";
NSString* stringComponent = @"Jo";
NSString* searchString2 = [stringComponent stringByAppendingFormat:@"hn"];

BOOL testContains1 = [theArray containsObject:searchString1];
int  testIndex1    = [theArray indexOfObjectIdenticalTo:searchString1];
BOOL testContains2 = [theArray containsObject:searchString2];
int  testIndex2    = [theArray indexOfObjectIdenticalTo:searchString2];
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,testContains1testContains2两个返回相同的值,这是true.但testIndex1testIndex2不同; testIndex1是0是因为它在索引0处找到了与预期相同的对象,但不幸的testIndex2是2147483647(NSNotFound).

objective-c nsarray ios

0
推荐指数
1
解决办法
1385
查看次数

从plist中读取一系列字典

嗨,我正试着读一个plist的值,这就是我的plist看起来像atm

<plist version="1.0">
<array>
    <dict>
        <key>Title</key>
        <string>Mickey Mouse</string>
        <key>Image</key>
        <string>mickeymouse.png</string>
        <key>Hint1</key>
        <string>Hint 1</string>
        <key>Hint2</key>
        <string>Hint 2</string>
        <key>Hint3</key>
        <string>Hint 3</string>
    </dict>
    <dict>
        <key>Title</key>
        <string>Peter Pan</string>
        <key>Image</key>
        <string>peterpan.png</string>
        <key>Hint1</key>
        <string>Hint 1</string>
        <key>Hint2</key>
        <string>Hint 2</string>
        <key>Hint3</key>
        <string>Hint 3</string>
    </dict>
</array>
</plist>
Run Code Online (Sandbox Code Playgroud)

这个我正在使用的代码然而它只是崩溃了.

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSString *questionNumber = [NSMutableString stringWithFormat:@"Item 0"];
NSString *path = [[NSBundle mainBundle] pathForResource:@"Level1" ofType:@"plist"];
NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:path];
NSDictionary *questionNumberDictionary = [array objectForKey:questionNumber];
NSString *questionTitle = [questionNumberDictionary objectForKey:@"Title"];
NSString *questionImage = [questionNumberDictionary objectForKey:@"Image"]; …
Run Code Online (Sandbox Code Playgroud)

nsdictionary plist nsmutablearray nsarray

0
推荐指数
1
解决办法
4143
查看次数

为什么这个数组为对象计数返回0?

我的阵列:

NSMutableArray *squareLocations;

CGPoint dotOne = CGPointMake(1, 1);
[squareLocations addObject:[NSValue valueWithCGPoint:dotOne]];

CGPoint dotTwo = CGPointMake(10, 10);
[squareLocations addObject:[NSValue valueWithCGPoint:dotTwo]];

CGPoint dotThree = CGPointMake(100, 100);
[squareLocations addObject:[NSValue valueWithCGPoint:dotThree]];

int num = [squareLocations count];

for (int i = 0; i < num; i++)
{
    NSValue *pointLocation = [squareLocations objectAtIndex:i];
    NSLog(@"%@", pointLocation);
}
Run Code Online (Sandbox Code Playgroud)

当我要求squareLoctions对象计数时,它返回零?但就在上面要求计数我添加了三个NSValue对象??? 有人有主意吗?

objective-c nsarray ios

0
推荐指数
1
解决办法
1215
查看次数

如何使用NSUserDefaults动态分配空间?

我之前使用过NSUserDefaults,为我的应用程序的设置部分存储了一些变量.

但是现在我正在制作一个食谱应用程序,用户可以在其中键入自己的食谱并保存它们.每个食谱都有一个标题描述日期等.所以我想我需要一个数组来保存每个食谱.但是,我将如何动态添加每个新配方?

我的意思是我会开始将配方保存在阵列的下一个位置?如果用户删除一个食谱并且数组中有一个空位,会发生什么?

我的逻辑在保存数据方面是正确的吗?你会怎么做?

nsuserdefaults nsarray ios

0
推荐指数
1
解决办法
119
查看次数

从数组中删除过去的时间

我有这样的一系列时间:

(
    "2000-01-01 23:48:00 +0000",
    "2000-01-01 02:15:00 +0000",
    "2000-01-01 04:39:00 +0000",
    "2000-01-01 17:23:00 +0000",
    "2000-01-01 13:02:00 +0000",
    "2000-01-01 21:25:00 +0000"
)
Run Code Online (Sandbox Code Playgroud)

这是从这段代码生成的:

//loop through array and convert the string times to NSDates
                NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
                [timeFormatter setDateFormat:@"hh:mm a"];
                NSMutableArray *arrayOfDatesAsDates = [NSMutableArray array];
                for (NSObject* o in arrayTimes)
                {
                    NSLog(@"%@",o);
                    NSDate *nsDateTime = [timeFormatter dateFromString:o];
                    [arrayOfDatesAsDates addObject:nsDateTime];
                }
                NSLog(@"times array: %@", arrayOfDatesAsDates);//
Run Code Online (Sandbox Code Playgroud)

我这样做是因为我试图在接下来的数组中获得时间.我的计划是删除过去的时间,订购它们,然后在下次使用第一个.

我怎样才能删除过去的?

谢谢

objective-c nsdate nsarray

0
推荐指数
1
解决办法
85
查看次数

通过NSSrray的URLS循环 - 崩溃 - iOS

我正在寻找循环我的NSArray*urls - 对每个对象进行一些字符串调整.

但是,一旦它进入For循环并尝试调整NSString*的东西 - 这会引发异常.

关于为什么我难倒的任何想法?

 - (void)GetData
    {
        NSFileManager *fm = [NSFileManager defaultManager];
        NSString *directory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
        directory = [NSString stringWithFormat:@"%@/%@/%@/%@", directory, self.researcherID, self.participantID, testTypeString];
        directory = [directory stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        NSError *error;
        NSURL *url = [NSURL URLWithString:directory];
        NSArray *urls = [fm contentsOfDirectoryAtURL:url includingPropertiesForKeys:nil options:0 error:&error];


        for (int x = 0; x < urls.count; x++) {

            NSString *urlIndex = urls[x];


            NSString *thing = [urlIndex stringByReplacingOccurrencesOfString:@"%20" withString:@" "];
            thing = [thing stringByReplacingOccurrencesOfString:@"file://" withString:@""];


            // add thing to new …
Run Code Online (Sandbox Code Playgroud)

url for-loop objective-c nsarray ios

0
推荐指数
1
解决办法
399
查看次数

在tableview中安排类似1-5,5-10,10-15的NSarray

我想安排一个NSarray,其中包含UItableView中的名称,如:

前5

瑞安

约翰

罗伊

阿梅拉

5-10

戈斯林

摊晒

麦克风

贾斯汀

兰博

木材

10-15

...

...

15-20

...

...

20-25

...

...

想知道我应该用什么来保存标题,viewForHeaderInSection或者只是cellForRowAtIndexPath?

objective-c uitableview nsarray ios

0
推荐指数
1
解决办法
47
查看次数