小编and*_*n22的帖子

Objective-C中引用的参数

我试图NSString通过引用传递,但它不起作用.

这是功能:

+(void)fileName:(NSString *) file
{
    file = @"folder_b";
}
Run Code Online (Sandbox Code Playgroud)

这就是电话:

NSString *file;

[function fileName:file];

nslog(@"%@",file);    // and there is nothing in the string....
Run Code Online (Sandbox Code Playgroud)

我必须做什么来通过引用传递我的字符串?

objective-c pass-by-reference

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

什么时候需要NSCopying?

我知道如果您的对象将被用作NSDictionary中的键,则需要它.还有其他这样的时间需要NSCopying吗?

如果我认为我不需要我的模型对象符合NSCopying,我可能错了吗?

cocoa objective-c nsdictionary nscopying

12
推荐指数
2
解决办法
2229
查看次数

更改提供给C预处理器宏的参数的大小写

我是C预处理器的新手.是否有可能改变提供给函数的参数的大小写#define?例如,我想写test(size),然后在结果替换中涉及"大小".

c c-preprocessor

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

GNUstep会支持@property和@synthesize吗?

我正在开发一个Cocoa应用程序,打算在Windows和Linux上使用GNUstep.到目前为止,我一直在避免使用Objective-C 2.0功能,但我真的很想开始使用至少属性.谷歌似乎告诉我(虽然我在这个问题上找不到很多)但是目前,没有任何Objective-C 2.0功能可以与GNUstep配合使用.有没有人知道是否有计划让GNUstep支持@property和@synthesize?

我也想知道是否有一个"扩大"它们的好策略?我当然可以想象一个程序可以使用@property和@synthesize将代码扩展为不使用任何Objective-C 2.0功能的代码,但是我担心对这样的东西没有太多需求,所以我可能会赢得'能够找到一个.

您认为GNUstep很有可能在未来一年内支持@property和@synthesize吗?

objective-c gnustep

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

Linux编译错误的Objective-C

似乎有很多关于如何做到这一点的教程,每个都略有不同.我希望有人能够认出我收到的错误信息,并指出我正确的方向.

我的代码,hm是:

#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
 NSLog (@"hello world");
 [pool drain];
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

在编译之前,我进入控制台:

. /usr/share/GNUstep/Makefiles/GNUstep.sh
Run Code Online (Sandbox Code Playgroud)

我尝试编译:

gcc `gnustep-config --objc-flags` -lgnustep-base h.m -o hello
Run Code Online (Sandbox Code Playgroud)

得到:

/tmp/ccgLOnpY.o: In function `main':
/home/ge/objective-c/h.m:4: undefined reference to `objc_get_class'
/home/ge/objective-c/h.m:4: undefined reference to `objc_msg_lookup'
/home/ge/objective-c/h.m:4: undefined reference to `objc_msg_lookup'
/home/ge/objective-c/h.m:5: undefined reference to `NSLog'
/home/ge/objective-c/h.m:6: undefined reference to `objc_msg_lookup'
/tmp/ccgLOnpY.o: In function `__objc_gnu_init':
/home/ge/objective-c/h.m:8: undefined reference to `__objc_exec_class'
/tmp/ccgLOnpY.o:(.data.rel+0x0): undefined …

linux ubuntu objective-c gnustep

8
推荐指数
3
解决办法
5374
查看次数

如何在GNUstep中使用Obj-C 2.0?

我知道libobjc2的存在,我认为我需要使用clang而不是GCC,但是我找不到任何关于编译过程有什么不同的基本指令.

任何人都可以提供有关在Ubuntu中使用Objective-C 2.0获取,配置,编译和使用GNUstep的明确的逐步说明吗?

ubuntu makefile objective-c gnustep

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

OpenGL中的变色

我正在使用OpenGL绘制2D.我正在尝试用alpha覆盖纹理.我这样做了:

glDisable(GL_DEPTH_TEST);
glDepthMask(GL_FALSE);

glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
Run Code Online (Sandbox Code Playgroud)

然后我以反向z顺序绘制.但是,我变得奇怪的变色.这是一个应该从一个图像平滑淡入到另一个图像的例子(事实上,在这种特殊情况下图像是无缝的,但这并不总是会发生(所以,不,我不能只有alpha)): α混合的奇怪变色

看到中间的灰色斑块?该补丁既不在源PNG中.有谁知道造成这种情况的原因以及如何解决这个问题?也许完全不同的alpha策略?

编辑:作为参考,这里是混合的两个纹理:

在此输入图像描述

opengl 2d alpha alphablending colors

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

有没有办法在NSCollectionView中拥有不同的视图?

我想要一些类似于iWork如何为Pages设置模板选择屏幕,当你可以选择不同的模板,并且每个视图包含不同的信息有不同的大小等.

我已经尝试了继承NSCollectionView并使用newItemForRepresentedObject方法确定要显示的视图(而不是使用itemPrototype视图Interface Builder),但由于某种原因它没有正确定位视图,并且它没有显示正确的视图数量出现的物品数量.这是我的代码.我希望有人可能有更好的方法来做到这一点,或者是如何做到这一点的一个例子.

personView和companyView是子类NSCollectionView中的属性,它们是IB中视图的IBOutlets.

-(NSCollectionViewItem *)newItemForRepresentedObject:(id)object{
NSCollectionViewItem *collectionViewItem = [[NSCollectionViewItem alloc] init];

 [collectionViewItem setRepresentedObject:object];

 if([[object valueForKey:@"company"] boolValue] == YES){
     NSView *view = [companyView retain];
     [collectionViewItem setView:companyView];
 }else{
     [collectionViewItem setView:personalView];
 }

return collectionViewItem;
Run Code Online (Sandbox Code Playgroud)

}

macos cocoa objective-c nscollectionview

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

Xcode构建选项等教程

我现在已经完成了一些项目,我不得不改变框架搜索路径,设置捆绑加载器等.

但我从未觉得完全熟悉那个项目(或目标)"获取信息"窗口.我仍然不知道那里有一半的东西,每当我改变任何东西时,当我点击Build时总会有一些手指交叉.建立和链接所有人现在感觉有点"神奇".

我认为这种感觉不正常.有没有人知道构建应用程序的这些非代码相关部分的任何好教程?

xcode cocoa gcc build-process build-settings

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

检查"Any"值是否为object

我惊讶地发现这种情况总是如此:

let foo: Any = 4
if let object = foo as? AnyObject {
    print("It's an object.")
    //do something with `object` that requires reference semantics
} else {
    print("It's not an object.")
}
Run Code Online (Sandbox Code Playgroud)

似乎无论foo最初是什么类型,它都被转换为相应类的实例.有没有可靠的方法来确定是否foo是一个对象?

casting swift

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