小编fuz*_*oat的帖子

好的,发布指针为零?

如果我在创建对象时创建一个包含两个对象指针(见下文)的新对象,则将指针设置为指向nil;

@interface rocketShip : NSObject {
    NSString *name; 
    NSNumber *thrust;
}
Run Code Online (Sandbox Code Playgroud)

如果(出于某些意外的原因)我没有分配这些指针,后来在我的dealloc方法中释放它们就好了,我很确定它是,只是想检查一下?

- (void)dealloc{
    [name release];
    name = nil;
    [thrust release];
    thrust = nil;
    [super dealloc];
}
Run Code Online (Sandbox Code Playgroud)

加里

cocoa objective-c

7
推荐指数
2
解决办法
3804
查看次数

在追加到NSString时,我应该使用中间临时变量吗?

这有效 - 它确实可以编译 - 但我只是想检查它是否被认为是好的做法还是要避免的事情?

NSString *fileName = @"image";
fileName = [fileName stringByAppendingString:@".png"];
NSLog(@"TEST  : %@", fileName);

OUTPUT: TEST  : image.png
Run Code Online (Sandbox Code Playgroud)

可以用一个临时变量写得更好:

NSString *fileName = @"image";
NSString *tempName;
tempName = [fileName stringByAppendingString:@".png"];
NSLog(@"TEST  : %@", tempName);
Run Code Online (Sandbox Code Playgroud)

只是好奇.

cocoa coding-style objective-c

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

Mike Ash Singleton:放置@synchronized

我在Mike Ash的"照顾和喂养单身人士"中遇到了这个问题,他的评论有点困惑:

不过,这段代码有点慢.拿锁是有点贵的.令人痛苦的是,在绝大多数情况下,锁定毫无意义.只有当foo为nil时才需要锁定,这基本上只发生一次.在单例初始化之后,对锁的需求消失了,但锁本身仍然存在.

+(id)sharedFoo {
    static Foo *foo = nil;
    @synchronized([Foo class]) {
        if(!foo) foo = [[self alloc] init];
    }
    return foo;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,毫无疑问这是一个很好的理由,但为什么你不能写(见下文)来限制当foo为零时的锁定?

+(id)sharedFoo {
    static Foo *foo = nil;
    if(!foo) {
        @synchronized([Foo class]) {
            foo = [[self alloc] init];
        }
    }
    return foo;
}
Run Code Online (Sandbox Code Playgroud)

欢呼加里

cocoa objective-c double-checked-locking

7
推荐指数
2
解决办法
4038
查看次数

UITableViewCell,删除按钮框架?

有没有办法改变使用的"滑动" [DELETE]按钮的框架UITableViewCells?目前它在细胞内垂直居中,但如果可能的话,我想将其移至青色指南展.

在此输入图像描述

iphone cocoa-touch objective-c uitableview

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

在settings.bundle中指定不可编辑的字符串?

我注意到有些应用程序会在settings.bundle中添加条目,这些条目只代表一个固定/不可编辑的字符串.

在此输入图像描述

我只在列表中看到这些,并且唯一关闭的是"文本字段",但这是可编辑的.

在此输入图像描述

有没有办法在Root.plist中指定它?

iphone cocoa-touch objective-c

7
推荐指数
2
解决办法
1541
查看次数

检测硬件类型,iPhone4或iPhone5的最佳方法是什么?

我正在设置一个应用程序,我想根据正在使用的iPhone类型对视图布局进行一些更改.具体来说,我想知道垂直屏幕分辨率是1136(iPhone5)还是960(iPhone4).我想要做的一件事是在UITableView中调整我的UITableViewCells的高度,这样当在任一手机上运行应用程序时,不会显示部分单元格.

我的问题是:检测正在使用的手机硬件类型的最佳方法什么,以便我可以对我的视图布局进行适当的更改?

iphone cocoa-touch objective-c ios

7
推荐指数
2
解决办法
6631
查看次数

Xcode 7,弱指针的重复相同地址

我对Xcode 7中看到的东西感到有些困惑,下面的3种颜色都有你想要的单独地址,但弱颜色都有相同的地址.我知道弱色是选项,所以weak_R和color_R有不同的地址,但我不能完全解释为什么所有3个弱显示相同的地址.

这看起来是否正确,如果是,有人可以解释我所看到的吗?如果不是我猜它是一个错误.

    var color_R = SKColor.redColor()
    var color_G = SKColor.greenColor()
    var color_B = SKColor.blueColor()
    weak var weak_R = color_R
    weak var weak_G = color_G
    weak var weak_B = color_B
Run Code Online (Sandbox Code Playgroud)

DEBUG

在此输入图像描述

var weak swift xcode7

7
推荐指数
0
解决办法
193
查看次数

Xcode 11,暗/亮图像的资产目录命名约定?

以前拖入 Xcode 资产目录的图像可以命名如下...

Rabbit@2x.png
Rabbit@3x.png 
Run Code Online (Sandbox Code Playgroud)

释放拖动时,这些图像会自动分配到目录中正确的2x3x插槽。

现在,借助 iOS 13 和 Xcode 11,我们能够添加一组备用图像以在深色模式下使用。有谁知道是否有一种方法可以指定亮/暗作为文件名的一部分,以便图像自动结束亮和暗槽。

IE

Rabbit@2x.png
Rabbit@3x.png
Rabbit@2x.dark.png
Rabbit@3x.dark.png 
Run Code Online (Sandbox Code Playgroud)

ios macos-darkmode xcode11 ios-darkmode

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

SwiftUI 位置文本右下角?

有没有更好的方法在 SwiftUI 中定位文本,在下面的示例中,我将文本定位在 ZStack 的右下角,它工作正常但似乎冗长,我是否缺少更简单的方法......橙色线是仅用于调试,以便间隔在视图中可见。

代码

struct DisplayTwoView: View {
    var body: some View {
        ZStack {
            Rectangle().foregroundColor(.blue)
            Group {
                VStack {
                    Spacer().frame(width: 5).background(Color.orange)
                    HStack {
                        Spacer().frame(height: 5).background(Color.orange)
                        Text("RABBITS").fontWeight(.black)
                    }
                }
            }.padding()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

看法

在此处输入图片说明

text swiftui vstack hstack

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

使用新的 @StateObject 将模型传递给多个视图?

如果您想在多个视图之间传递模型,可以多次使用@StateObject(请参见下面的示例)以便每个视图都可以修改该对象吗?我很欣赏使用 @EnvironmentObject 可以更好地完成此操作,但只是想了解这个新的属性包装器在这种情况下如何工作。

// MARK: - MODEL
class Model: ObservableObject {
   @Published var temperature = 27.5
}
Run Code Online (Sandbox Code Playgroud)

// MARK: - APP.SWIFT
@main
struct SwiftUI_DataFlow_005App: App {
    @ObservedObject var model = Model()
    var body: some Scene {
        WindowGroup {
            ContentView(model: model)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

// MARK: - CONTENT VIEW
struct ContentView: View {
    @StateObject var model: Model
    var body: some View {
        VStack {
            Text("\(model.temperature)")
            AnotherView(model: model)
        }
    }
}

// MARK: - ANOTHER VIEW
struct AnotherView: View { …
Run Code Online (Sandbox Code Playgroud)

swiftui

6
推荐指数
2
解决办法
6348
查看次数