将属性作为指针形式的参数传递给方法是否安全?

瑞奇

我正在数据库控制器类上创建一个便捷方法,该方法旨在为另一个项目提供两个子项目。这就是它的样子。

+ (void)getLeft:(out MySubItem *)left 
          right:(out MySubItem *)right 
        forItem:(MyItem *)item
{
    ...
    left = aResult;
    right = anotherResult;
}

在所有使用此方法的情况下,左和右都是强属性。

[Database getLeft:self.leftItem right:self.rightItem forItem:anItem];

这有问题吗?静态分析器还抱怨,因为从不读取左右声明(死存储),我希望能够解决此问题。

工藤CC

您想要的是更改self.leftItem的值,因此您应该使用self.leftItem的地址(它是MySubItem *)作为参数,因此应该使用MySubItem **

试试吧:

+ (void)getLeft:(out MySubItem **)p_left 
          right:(out MySubItem **)p_right 
        forItem:(MyItem *)item
{
    ...
    *p_left = aResult;
    *p_right = anotherResult;
}

MySubItem *l = nil ;
MySubItem *r = nil ;
[Database getLeft:&l right:&r forItem:anItem];
self.leftItem = l ;
self.rightItem = r ;

更新:我找到了不需要两步的解决方案...我认为self.leftItem和self.rightItem是强属性,如果不是,请使用__weak代替。

+ (void)getLeft:(out NSObject * __strong *)p_left
          right:(out NSObject * __strong *)p_right
        forItem:(NSObject *)item
{
    *p_left = nil;
    *p_right = nil;
}

不能使用self.leftItem,请改用_leftItem。

[Database getLeft:&_leftItem right:&_rightItem forItem:anItem];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++将方法的指针数组作为参数传递给方法

来自分类Dev

将参数传递给Ajax安全方法

来自分类Dev

将_bstr_t对象传递给以BSTR作为参数的函数是否安全?

来自分类Dev

将视图控制器作为参数传递给AFNetworking请求是否安全?

来自分类Dev

将方法作为参数传递给PHP

来自分类Dev

将函数作为参数传递给方法

来自分类Dev

如何将向量作为函数参数传递给指针

来自分类Dev

将指针传递给char数组作为函数的参数-C

来自分类Dev

将char指针作为参数传递给函数

来自分类Dev

将指针传递给成员函数作为void *函数的参数

来自分类Dev

将指针/引用传递给变量作为参数

来自分类Dev

将指针作为参数传递给函数的正确方法是什么?

来自分类Dev

将字符串地址作为参数传递给指针,指针传递给char函数

来自分类Dev

将成员函数指针作为参数传递给模板方法

来自分类Dev

将指针作为参数传递

来自分类Dev

是否存在将代理的身份验证参数传递给应用程序的安全方法?

来自分类Dev

是否存在将代理的身份验证参数传递给应用程序的安全方法?

来自分类Dev

将没有参数的查询传递给PreparedStatement是否安全?

来自分类Dev

如何将属性作为参数传递给在类上调用的方法?

来自分类Dev

将IO.DirectoryInfo属性作为参数传递给函数?

来自分类Dev

将属性名称作为参数传递给mixin LESS

来自分类Dev

将属性名称作为参数传递给mixin LESS

来自分类Dev

将通用类的属性作为参数传递给AutoMoq

来自分类Dev

是否可以将选择器或方法签名作为参数传递给Objective-C?

来自分类Dev

将正在移动的对象的成员作为参数传递是否安全?

来自分类Dev

将参数传递给argv指针的最短方法

来自分类Dev

将指向类方法的指针作为函数参数传递

来自分类Dev

将指向类方法的指针作为函数参数传递

来自分类Dev

C ++将指针常量作为参数从main传递到方法

Related 相关文章

  1. 1

    C ++将方法的指针数组作为参数传递给方法

  2. 2

    将参数传递给Ajax安全方法

  3. 3

    将_bstr_t对象传递给以BSTR作为参数的函数是否安全?

  4. 4

    将视图控制器作为参数传递给AFNetworking请求是否安全?

  5. 5

    将方法作为参数传递给PHP

  6. 6

    将函数作为参数传递给方法

  7. 7

    如何将向量作为函数参数传递给指针

  8. 8

    将指针传递给char数组作为函数的参数-C

  9. 9

    将char指针作为参数传递给函数

  10. 10

    将指针传递给成员函数作为void *函数的参数

  11. 11

    将指针/引用传递给变量作为参数

  12. 12

    将指针作为参数传递给函数的正确方法是什么?

  13. 13

    将字符串地址作为参数传递给指针,指针传递给char函数

  14. 14

    将成员函数指针作为参数传递给模板方法

  15. 15

    将指针作为参数传递

  16. 16

    是否存在将代理的身份验证参数传递给应用程序的安全方法?

  17. 17

    是否存在将代理的身份验证参数传递给应用程序的安全方法?

  18. 18

    将没有参数的查询传递给PreparedStatement是否安全?

  19. 19

    如何将属性作为参数传递给在类上调用的方法?

  20. 20

    将IO.DirectoryInfo属性作为参数传递给函数?

  21. 21

    将属性名称作为参数传递给mixin LESS

  22. 22

    将属性名称作为参数传递给mixin LESS

  23. 23

    将通用类的属性作为参数传递给AutoMoq

  24. 24

    是否可以将选择器或方法签名作为参数传递给Objective-C?

  25. 25

    将正在移动的对象的成员作为参数传递是否安全?

  26. 26

    将参数传递给argv指针的最短方法

  27. 27

    将指向类方法的指针作为函数参数传递

  28. 28

    将指向类方法的指针作为函数参数传递

  29. 29

    C ++将指针常量作为参数从main传递到方法

热门标签

归档