我正在乱搞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中?)
好吧,在深入深渊(即iOS私人课程)和最终可重复使用代码的讨伐之间存在着一条很好的界限.
我想在UINavigationBar下面有一个任意UIView,大约40像素高.现在,通常这可以在封闭的视图中抛出,但我希望这个UIView 留在UINavigationBar中.因此,当用户向下钻取到不同视图时,导航栏下方的UIView将保持存在.
我已经尝试构建一个容器UIViewController,它将被放置为UINavigationController中的RootViewController,但是这没有用,因为当用户推送新视图时,我的容器视图被滑出,而我的持久性栏顺其自然.
如果我在UIViewController中放置一个UINavigationController,我可以覆盖我想要的UIView条,但内部视图似乎仍然没有正确地改变它们的框架,以及当从导航堆栈推出或弹出视图时,由于UINavigationController不知道屏幕下方的新Y位置,因此视图动画效果不佳(更改其Y位置以及移出屏幕.)
所以,我研究了UINavigationController的子类化.我知道,它说" 这个类不是用于子类化的. ",但总有例外.这个子类可以简单地在导航栏下面添加持久性UIView,调整内容部分的大小(普通视图将出现的位置),一切都会正常工作.
但是在使用ObjC运行时类之后,我找不到调整的魔术变量来使其工作(UINavigationController的_containerView就是这样一个变量).
最好的方法是什么?有没有比复制和粘贴代码更好的方法,使这个Bar成为将显示它的所有ViewControllers?
嘿,所以我正在制作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++小游戏"连接3"上工作.这就像Connect 4一样,除了我们只需要3的匹配来赢得游戏.我将我的电路板存储在一个2D矢量中,该矢量包含整数.
vector< vector<int> > vector2d;
Run Code Online (Sandbox Code Playgroud)
我有一个"X"存储为1,"O"存储为-1,0为空的空间.它似乎到目前为止工作.
因此,在我对抗计算机的算法中,它找到了最好的移动方式.我已经完成了算法,但它需要知道何时遇到"基本案例".(它是递归的.)一个基本案例是:
检查电路板是否已满是很容易的.我只是迭代,看看是否有任何空格是"0".如果是,则电路板未满.但在我检查之前,我需要看看是否有人连续3次,这是我遇到问题的地方.我能想到做到这一点的唯一方法是大而复杂,通过董事会3次不同,寻找3的水平匹配,3的垂直匹配和3的对角线匹配.我甚至不确定从哪里开始这样做,我希望有更好的方法来做到这一点.非常感谢帮助!
另外,不确定我是否允许使用Boost,我还没有到目前为止,我不想使用它.(不确定学校的电脑是否有它).
编辑:电路板不需要是3乘3.它可以是1乘7,7乘7或任何大小.如果它不是合法的大小(0,0),我的代码将告诉用户,但任何其他板应该工作.我已经使用矢量大小来查看电路板的大小.
我有一个工具包,我需要使用(与远程服务接口).此工具包查询远程服务并询问结果.它以异步方式执行此操作,在大多数情况下这是好的,但不是用于创建简洁的方法.我想制作类似于以下的方法:
-(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个线程,因此主线程不会休息吗?)
我不想编辑工具包来改变他们的方法(或添加一个新的)来实现同步,那么有没有办法按我想要的方法制作一个方法?
在我的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
对于家庭作业,我们正在开发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:错误:赋值中的不兼容类型"有或没有指针那么...所以我不确定我应该如何分配该变量?帮助将不胜感激!
iphone ×4
objective-c ×3
c ×2
arrays ×1
associations ×1
asynchronous ×1
c++ ×1
ios ×1
ios6 ×1
iteration ×1
iterator ×1
json ×1
nsnumber ×1
pointers ×1
return-value ×1
struct ×1
synchronous ×1
vector ×1