小编Eth*_*ick的帖子

NSNumber,设置和检索

我正在乱搞NSNumber的iPhone应用程序,看看我能用它做些什么.对于我的大多数变量,我简单地将它们存储为"int"或"float"或诸如此类的东西.但是,当我必须传递一个对象(如在词典中)时,我需要它们作为对象.我用NSNUmber.这是我初始化对象的方式.

NSNumber *testNum = [NSNumber numberWithInt:varMoney];
Run Code Online (Sandbox Code Playgroud)

"varMoney"是我之前在程序中声明的int.但是,我完全不知道如何获得这个号码......

例如:

varMoney2 = [NSNumber retrieve the variable...];
Run Code Online (Sandbox Code Playgroud)

如何从对象中获取值并再次将其设置为常规"int"?

谢谢!

(出于好奇,有没有办法将"int"直接存储在Objective-C字典中,而不是先将它放在NSNumber中?)

iphone objective-c nsnumber

2
推荐指数
1
解决办法
2万
查看次数

如何在UINavigationBar下面添加一个视图

好吧,在深入深渊(即iOS私人课程)和最终可重复使用代码的讨伐之间存在着一条很好的界限.

我想在UINavigationBar下面有一个任意UIView,大约40像素高.现在,通常这可以在封闭的视图中抛出,但我希望这个UIView 在UINavigationBar中.因此,当用户向下钻取到不同视图时,导航栏下方的UIView将保持存在.

我已经尝试构建一个容器UIViewController,它将被放置为UINavigationController中的RootViewController,但是这没有用,因为当用户推送新视图时,我的容器视图被滑出,而我的持久性栏顺其自然.

如果我在UIViewController中放置一个UINavigationController,我可以覆盖我想要的UIView条,但内部视图似乎仍然没有正确地改变它们的框架,以及当从导航堆栈推出或弹出视图时,由于UINavigationController不知道屏幕下方的新Y位置,因此视图动画效果不佳(更改其Y位置以及移出屏幕.)

所以,我研究了UINavigationController的子类化.我知道,它说" 这个类不是用于子类化的. ",但总有例外.这个子类可以简单地在导航栏下面添加持久性UIView,调整内容部分的大小(普通视图将出现的位置),一切都会正常工作.

但是在使用ObjC运行时类之后,我找不到调整的魔术变量来使其工作(UINavigationController的_containerView就是这样一个变量).

最好的方法是什么?有没有比复制和粘贴代码更好的方法,使这个Bar成为将显示它的所有ViewControllers?

iphone uinavigationbar uinavigationcontroller ios ios6

2
推荐指数
1
解决办法
1802
查看次数

从函数返回多个值

嘿,所以我正在制作iPhone应用程序,并且有一个需要调用的常用功能.所以我把它放在它自己的文件中并进行设置,将参数传递给它以及所有这些.但是,我不确定如何最好地从函数返回值.我读过尝试返回数组中的值,但我不知道该怎么做.

int EndOfTurn(int varTurns, int varFatness)
    {
        varTurns--;

        if (varTurns <= 0) {
            varFatness = varFatness - 5;
        }
        else {
            varFatness += 2;
        }
}
Run Code Online (Sandbox Code Playgroud)

我需要返回varTurns和varFatness.但是,这个函数会变得更复杂,我会返回多达10个变量.

截至目前,它是用C语言编写的,而不是Objective-C,(我刚刚在项目中添加了一个.c文件),但我可以改变它.它需要简单地返回我在函数中使用的所有更新值.如果可以的话,写下函数的声明和类型:

TYPE_HERE EndOfTurn(int varTurns, int varFatness)
Run Code Online (Sandbox Code Playgroud)

所以我确切知道该怎么做.谢谢,我希望我提供了足够的信息!

c iphone objective-c return-value

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

C++迭代2D向量以连续找到3个

嘿所有,在C++小游戏"连接3"上工作.这就像Connect 4一样,除了我们只需要3的匹配来赢得游戏.我将我的电路板存储在一个2D矢量中,该矢量包含整数.

vector< vector<int> > vector2d;
Run Code Online (Sandbox Code Playgroud)

我有一个"X"存储为1,"O"存储为-1,0为空的空间.它似乎到目前为止工作.

因此,在我对抗计算机的算法中,它找到了最好的移动方式.我已经完成了算法,但它需要知道何时遇到"基本案例".(它是递归的.)一个基本案例是:

  1. 有人已经连续3次,或者
  2. 董事会已满

检查电路板是否已满是很容易的.我只是迭代,看看是否有任何空格是"0".如果是,则电路板未满.但在我检查之前,我需要看看是否有人连续3次,这是我遇到问题的地方.我能想到做到这一点的唯一方法是大而复杂,通过董事会3次不同,寻找3的水平匹配,3的垂直匹配和3的对角线匹配.我甚至不确定从哪里开始这样做,我希望有更好的方法来做到这一点.非常感谢帮助!

另外,不确定我是否允许使用Boost,我还没有到目前为止,我不想使用它.(不确定学校的电脑是否有它).

编辑:电路板不需要是3乘3.它可以是1乘7,7乘7或任何大小.如果它不是合法的大小(0,0),我的代码将告诉用户,但任何其他板应该工作.我已经使用矢量大小来查看电路板的大小.

c++ iteration iterator vector

1
推荐指数
2
解决办法
2230
查看次数

如何等待异步方法结束?

我有一个工具包,我需要使用(与远程服务接口).此工具包查询远程服务并询问结果.它以异步方式执行此操作,在大多数情况下这是好的,但不是用于创建简洁的方法.我想制作类似于以下的方法:

-(NSArray *)getAllAccounts {
    NSString *query = @"SELECT name FROM Account";
    //Sets "result" to the query response if no errors.
    //queryResult:error:context: is called when the data is received
    [myToolkit query:query target:self selector:@selector(queryResult:error:context:) context:nil];

    //Wait?

    return result.records;
}
Run Code Online (Sandbox Code Playgroud)

问题是,在工具包中,方法使用@selector相互调用,而不是直接调用,因此获取返回值很困难.此外,实际查询使用:

NSURLConnection *connection = [[[NSURLConnection alloc] initWithRequest:aRequest delegate:self] autorelease];
Run Code Online (Sandbox Code Playgroud)

哪个是异步的.当从服务接收到数据时,我的方法很久以前就返回了......没有信息.所以我的问题是:有没有办法暂停执行,直到数据被返回?我可以使用第二个线程来完成这个,以便在主线程休息时获取数据(或使用3个​​线程,因此主线程不会休息吗?)

我不想编辑工具包来改变他们的方法(或添加一个新的)来实现同步,那么有没有办法按我想要的方法制作一个方法?

iphone multithreading asynchronous objective-c synchronous

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

如何在JSON中使用rails 3加载关联?

在我的rails 3.1应用程序中,我有Lists,它有很多任务.所有的关联都设置得恰当,我可以调用aList.tasks,然后我可以看到List的任务.但是,当我加载/lists.json时,我得到以下输出:

{
created_at: "2011-12-07T21:51:31Z",
id: 1,
title: "Test 1",
updated_at: "2011-12-07T21:51:31Z"
}
Run Code Online (Sandbox Code Playgroud)

因此,List被序列化为JSON,但它的"任务"关联不是(任务嵌套在列表下,因此/ list/1/tasks将获得任务......但仅限于该1列表).如果我有500个列表,我不想要拨打500次来获取每个列表的所有任务 - 我希望在获得所有列表时获得所有任务.我如何设置它以便JSON还包括关联?思考?

谢谢!

serialization json ruby-on-rails associations ruby-on-rails-3

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

将数组分配给C中的Struct值

对于家庭作业,我们正在开发CSV解析器.我正在尝试让事情奏效,但我遇到了一个问题.我似乎无法为结构中的"字段"值赋值.在他们提供的代码中,他们有:

typedef char f_string[MAX_CHARS+1] ;    /* string for each field */

    typedef struct {
        int nfields;                        /* 0 => end of file */
        f_string field[MAX_FIELDS];         /* array of strings for fields */
    } csv_line ;
Run Code Online (Sandbox Code Playgroud)

使用上面定义的20和15的常量.看看它们有什么,struct hold和int,它包含一个数组,应该使用前面定义的f_string typedef填充它.好吧,很酷.我试着这样做:

f_string test = "Hello, Bob";
f_string testAgain = "this is dumb, k?";
f_string anArray[MAX_FIELDS] = {*test, *testAgain};

csv_line aLine;
aLine.nfields = 3;
aLine.field = *anArray;
Run Code Online (Sandbox Code Playgroud)

当我制作"anArray"时,如果我没有测试和testAgain的解释,我会收到关于在没有演员表的情况下对指针进行整数的警告.所以我把它们留在了.但是这条线:

aLine.field = *anArray;
Run Code Online (Sandbox Code Playgroud)

返回错误:"csv.c:87:错误:赋值中的不兼容类型"有或没有指针那么...所以我不确定我应该如何分配该变量?帮助将不胜感激!

c arrays struct pointers

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