所以我有一个数组,其中的项目数量可能会有所不同.我想知道无论如何我能得到最后一个对象NSArray
?我确实想过一个int
计数器来跟踪数组中的项目数量,但这看起来太麻烦了.
有谁知道这比这更好吗?
我知道当我们想要创建一个未知值对象时,我们使用id.但是,我很好奇为什么Apple选择id在运行时决定它的值,当每个对象都是NSObject的子类时.所以id delegate
我们可以使用而NSObject *delegate
不是有人知道为什么吗?谢谢.
我目前正在研究OpenGL中的照明,它使用GLSL中的一个函数,称为normalize.根据OpenGL文档,它说它"计算两个向量的标准化乘积".但是,它仍然无法解释"正常化"的含义.我已经尝试过在Google上查找标准化产品,但我似乎无法找到任何相关信息.任何人都可以解释正常化的含义并提供一些标准化值的例子吗?
我试图继承NSOutlineView.这是我的代码:
OutlineViewSublcass.h:
#import <Cocoa/Cocoa.h>
@interface OutlineViewSubclass : NSOutlineView {
}
@end
Run Code Online (Sandbox Code Playgroud)
OutlineViewSubclass.m:
#import "OutlineViewSubclass.h"
@implementation OutlineViewSubclass
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
printf("debug A\n");
return self;
}
- (void)awakeFromNib
{
printf("debug B\n");
}
@end
Run Code Online (Sandbox Code Playgroud)
调试输出是:
debug B
Run Code Online (Sandbox Code Playgroud)
为什么不(id)initWithFrame:(NSRect)frame
被召唤?
我有一个班级,我希望我的班级确认NSFastEnumeration协议.我已阅读文档,但不是很清楚.有人可以告诉我协议方法应该返回什么以及它是如何工作的?
所以基本上,我有这个计时器,它应该在收到一个键事件时重复,并在用户释放键时失效.但是,即使通过调用addTimer:forMode:
NSRunLoop ,我也无法"验证"计时器.有谁知道为什么会发生这种情况以及如何解决这个问题?谢谢.
我们可以在Xcode 4中使用BWToolKit或任何其他IB插件吗?
我的旧项目使用BWToolKit,现在我无法在没有Interface Builder的情况下打开它.
目前我正在尝试将NSRect保存到我的用户默认值.现在我正在使用NSValue将其包装为对象,然后使用以下代码将其保存为用户默认值作为对象
[userDefaults setObject:[NSValue valueWithRect:rect forKey:@"Key"]];
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,我收到一个错误,上面写着[NSUserDefaults setObject:forKey:]:尝试插入类'NSConcreteValue'的非属性值'NSRect:{{0,0},{50,50}}' .
有谁知道我怎么解决这个问题?谢谢.
所以,我想将一个实例变量放入NSString中,如下所示:
NSString*theAnswer =(@"答案是%@ \n",self.answer);
我不确定我是对还是不对.我认为NSString会像NSLog一样工作,但显然它没有.
theAnswer只返回实例变量而没有"答案是"
有人能告诉我为什么以及如何解决这个问题?
谢谢.
所以我尝试遵循文档,但是我似乎无法让纹理二维数组工作。
-(GLint)buildTextureArray:(NSArray *)arrayOfImages
{
GLImage *sample = [GLImage imageWithImageName:[arrayOfImages objectAtIndex:0] shouldFlip:NO]; //Creates a sample to examine texture width and height
int width = sample.width, height = sample.height;
GLsizei count = (GLsizei)arrayOfImages.count;
GLuint texture3D;
glGenTextures(1, &texture3D);
glBindTexture(GL_TEXTURE_2D_ARRAY, texture3D);
glPixelStorei(GL_UNPACK_ROW_LENGTH, width);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexParameteri(GL_TEXTURE_2D_ARRAY,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D_ARRAY,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D_ARRAY,GL_TEXTURE_WRAP_S,GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D_ARRAY,GL_TEXTURE_WRAP_T,GL_REPEAT);
glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA8, width, height, count, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, NULL);
int i = 0;
for (NSString *name in arrayOfImages) //Loops through everything in arrayOfImages
{
GLImage *image = [GLImage imageWithImageName:name shouldFlip:NO]; //My own …
Run Code Online (Sandbox Code Playgroud)