小编Jer*_*myP的帖子

复制构造函数未在Objective C++代码中由Synthesis属性setter调用

我们都知道Objective-C++是如何记录在案的.我找不到任何相关内容,但我也发现很难找到合适的明确搜索词.所以,Stackoverflow来救援(我希望)!

我有一个C++类,我在Objective-C(++)类中有一个实例(我启用了项目设置,可以调用构造函数/析构函数).

这一切都正常,直到我尝试通过@synthesized属性公开实例.我把它作为一个assign属性(因为Obj-C保留计数不适用).该属性似乎工作,除非我设置实例,我希望涉及复制构造函数.我实际看到的是创建了一个临时实例(在上调用了复制构造函数) - 这是所有预期的.但是没有调用ivar实例上的复制构造函数.这些值是"神奇地"设置的.我假设@synthesized代码正在做memcpy最后一步.这对于C structs 来说很好,但对C++没那么有用classes代码的正确性取决于正确调用的复制构造函数和赋值运算符.

有没有人更深入地研究过它,让它工作,或者确认不可能在Obj-C(++)类中将C++对象保存为ivars并且具有由@synthesized属性设置器调用的复制构造函数?

(如果有必要,我可以发布所有这些的示例代码 - 但即使是最小版本也是一个屏幕左右).

c++ objective-c objective-c++

5
推荐指数
2
解决办法
1285
查看次数

无法将int转换为int*

#include "stdio.h"
#include "conio.h"

void swap(int *x,int *y);

void main()
{
int a=10,b=20;
swap(a,b);
printf("value of a=%d and b=%d");
getch();
}

void swap(int *x,int *y)

{
  if(x!=y)
     {
      *x ^= *y;
         *y ^= *x;
         *x ^= *y;

     }
}
Run Code Online (Sandbox Code Playgroud)

//我正在......无法将int转换为int*...

任何人都可以告诉我为什么这样.以及如何解决它.

希望得到快速和积极的回应.

c c++

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

NSMutableArray如何正确添加对象和释放

我担心的是我正确添加对象并释放它们.

  1. NSMutableArray实际包含什么 - 对象的副本或只是指向它们的指针?
  2. 使用NSMutableArray的顺序是什么?(alloc,init,work,release)
  3. 如何正确保留和释放?

    NSMutableArray *listData = [[NSMutableArray alloc] init];
    int i = 0;
    for (i = 0; i < 3; i++)
    {
        MyData *obj = [[MyData alloc] init];
        NSString *name = nil;
        switch (i)
        {
            case 0:
                name = @"Semen";
                break;
            case 1:
                name = @"Ivan";
                break;              
            case 2:
                name = @"Stepan";
                break;              
            default:
                break;
        }       
        obj.name = name;
        [listData addObject: obj];
        [obj release];
     }
     [listData release]  //in dealloc method
    
    Run Code Online (Sandbox Code Playgroud)

或者我需要首先释放所有包含的对象,而不是在NSMutableArray对象上释放?

谢谢!

iphone objective-c nsmutablearray ios4

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

Objective-c单例基类

有没有办法用objective-c创建一个Singleton模式,这将使客户端代码能够获得任何子类的共享实例?

我试过了:

@interface Base : NSObject {}
+(id)instance;
@end

@implementation Base
static id _instance;
+(id)instance {
    if (!_instance) {
        _instance = [[self alloc] init];
    }
    return _instance;
}
@end
Run Code Online (Sandbox Code Playgroud)

但是调用任何子类[AmazingThing instance]只会返回通过此机制创建的第一个实例,无论它是什么类型_instance.任何干净的解决方法?

编辑

我意识到(在回复已删除的答案时)我可以通过将实现更改为:

static NSMutableDictionary *_instances;

+(id)instance {
    if (!_instances) {
        _instances = [[NSMutableDictionary alloc] init];
    }
    id instance = [_instances objectForKey:self];
    if (!instance) {
        instance = [[self alloc] init];
        [_instances setObject:instance forKey:self];
    }
    return instance;
}
Run Code Online (Sandbox Code Playgroud)

它现在按预期工作.不过,我很想知道是否有更好的方法来做到这一点.

singleton objective-c

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

Javascript正则表达式匹配

尝试

<script type="text/javascript">
    var str=">1 people>9 people>1u people";
    document.write(str.match(/>.*people/img).length);
</script>
Run Code Online (Sandbox Code Playgroud)

http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_regexp_dot.此代码应返回大小为3的数组,但它返回大小为1的数组.
问题出在哪儿?

javascript regex match

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

NSURLErrorDomain Code=-1000“错误的URL”:它的真正含义是什么?

我有这个令人困惑的错误。我通过 GET 方法发送 JSON,网站将解析并显示数据。问题是我收到错误“NSURLErrorDomain Code -1000”或更简单的“Bad URL”。问题是,当我检查服务器时,我发送的数据已成功解析并显示。所以我真的很困惑为什么我会收到这个“错误的 URL”错误。有人能帮我吗?

这是我收到的错误:

错误域=NSURLErrorDomain代码=-1000“错误的URL”UserInfo=0xff73df0 {NSUnderlyingError=0xff73810“错误的URL”,NSLocalizedDescription=错误的URL}

编辑:

http://sample.com/imwebjson.php?sid=5amp13&job=sendNotes&im_flds={\"im_uid\":"1",\"im_bookid\":"57",\"im_pagenr\":"1",\"im_notes\":"Testing%5C%5Cn"}
Run Code Online (Sandbox Code Playgroud)

好吧,您可能会问为什么 JSON 字符串的某些部分已经被编码了。这些编码部分是特殊字符。我意识到 stringByAddingPercentEscapesUsingEncoding 非常不完整。它不会对所有特殊字符进行编码,更重要的是,当它对某些特殊字符进行编码时,URL根本无法被识别。所以我决定手动将特殊字符编码到字符串中。

xcode json get objective-c ios

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

为什么C/C99标准的作者没有为sizeof浮点类型指定..standard?

我注意到在windows和linux x86上,float是4bytes,double是8,但long xins分别是x86和x86_64上的12和16.C99应该用特定的整体尺寸打破这种障碍.

最初的技术限制似乎是由于x86处理器无法处理超过80位的浮点运算(加上2个字节来进行舍入),但为什么标准与int类型相比不一致?他们为什么不至少达到80bit标准化?

c programming-languages c99

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

错误:'尝试使用appendString改变不可变对象:' -

我收到一个错误'尝试使用appendString来改变不可变对象:'

我的代码是

NSMutableString *resultString= [[NSMutableString alloc]init];


for (NSMutableString *s in self.ArrayValue)
{
    [resultString appendString:s];
    NSLog(resultString);

}  
Run Code Online (Sandbox Code Playgroud)

ArrayValue是NSMutableArray.
我无法理解问题出在哪里

先感谢您

iphone objective-c nsmutablearray nsmutablestring

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

AppKit线程安全与否?

你能解释一下我是AppKit线程安全吗?我在哪里可以阅读它?(除了线程编程指南,因为此文档创建了更多问题而不是答案).例如,我可以在分离的线程中验证NSToolbar的voidVisibleItems吗?或者我可以在第二个线程中增加NSProgressIndicator的值吗?

cocoa appkit

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

iPhone - JSON解析中的Escape charecter问题

我正在使用客观的C JSON解析库并面临一些问题.我的Web服务返回JSON响应.当响应字符串中有转义字符时,My Parser失败.以下是我从服务器收到的回复.来自服务器的JSON响应

现在,如果您观察"item_name"行:"花费$ 10andget $ 24worthofdonuts fromJim \'sDonutShop",就会有一个逃脱角色Jim \'Donut.My Parser无法解析此异常.

 -JSONValue failed. Error trace is: (
    "Error Domain=org.brautaset.JSON.ErrorDomain Code=8 \"Illegal escape sequence '0x27'\" UserInfo=0x79cc420 {NSLocalizedDescription=Illegal escape sequence '0x27'}",
    "Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Object value expected for key: item_name\" UserInfo=0x79cc510 {NSUnderlyingError=0x79cc470 \"Illegal escape sequence '0x27'\", NSLocalizedDescription=Object value expected for key: item_name}",
    "Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Object value expected for key: parameters\" UserInfo=0x79cc5c0 {NSUnderlyingError=0x79cc540 \"Object value expected for key: item_name\", NSLocalizedDescription=Object value expected for key: parameters}"
Run Code Online (Sandbox Code Playgroud)

我正在使用的是JSON.h

NSDictionary * responseDic …
Run Code Online (Sandbox Code Playgroud)

iphone json escaping objective-c

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