小编mk1*_*k12的帖子

目标c中的重点是什么?

SomeObject *temp = [[SomeObject alloc] init]
self.theObject = temp;
[temp release];
Run Code Online (Sandbox Code Playgroud)

为什么总是这样做?为什么不

self.theObject = [[SomeObject alloc] init];
Run Code Online (Sandbox Code Playgroud)

iphone properties objective-c object-initialization

2
推荐指数
1
解决办法
175
查看次数

iPhone Dev - UIView框架和loadView

我正在学习为iPhone开发(以编程方式,我不喜欢IB).我只使用IB作为帧的东西,所以我在IB中设计但只用它来检查每个控件的帧.我非常困惑的是UIView的框架.首先,如果你没有在视图控制器中实现loadView,它会自动创建一个空的UIView(我注意到它的黑色)并将其分配给self.view,对吗?框架怎么样?它会自动找出框架应该是什么吗?我的意思是,它需要有所不同,具体取决于是否有状态栏,是否有标签栏,工具栏,方向.在我的标签栏应用程序中,似乎无论我设置的uiview框架是什么,它看起来仍然很好.而且,UIView的框架似乎在IB中搞砸了.就像UIView占据整个窗口(状态栏除外)的y值是0,当它应该是20时,因为状态栏占据前20个像素.在IB中,标签栏控制器中的视图的值为411,即使它始于状态栏下方.每当我NSLog一帧(四个数字,view.frame.origin.x,view.frame ......等),x,y,宽度和高度总是为0 ..可以理解它的人请解释它我?谢谢!!

好的,这很奇怪......这个:

CGRect test = CGRectMake(0, 20, 320, 460);
NSLog(@"%d %d %d %d", test.origin.x, test.origin.y, CGRectGetWidth(test), CGRectGetHeight(test));
Run Code Online (Sandbox Code Playgroud)

给出输出:

0 0 0 1077149696
Run Code Online (Sandbox Code Playgroud)

??? 那是什么?

iphone user-interface uiviewcontroller uiview loadview

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

Haskell:由解析方法影响的懒惰

我有一个简单的程序(这是CCC 2012上的第二个问题),它取一个数字列表,并确定是否有任何严格增加/减少/不变的序列正在进行.例如:

1 2 3 4 7 8 => Increasing
5 1 -2 -100 => Decreasing
9 9 9 9 9 9 => Constant
1 2 3 4 5 0 => Nothing
Run Code Online (Sandbox Code Playgroud)

当我对此进行编码时,我对Haskell的智能程度感到震惊.出于某种原因,当我以交互方式输入数字到stdin时,在我完成之前就给了我答案!我认为这是一个错误,但后来我愚蠢地意识到,Haskell的懒惰(我想?)正在采取独自去决定,之后我进入1,2,3,0,不管以后有什么来了,结果将是Nothing,所以它高兴地输出那个.

不幸的是,当我改变时

let readings = map (read :: (Read a, Num a) => String -> a) $ lines input
Run Code Online (Sandbox Code Playgroud)

let readings = parse $ lines input
Run Code Online (Sandbox Code Playgroud)

parse被读取数字输入一个更安全的方法,实现为

maybeRead :: (Read a) => String …
Run Code Online (Sandbox Code Playgroud)

parsing haskell functional-programming input lazy-evaluation

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

Haskell:非具体类型的Num实例

data Vector a = Vector a a a deriving (Eq, Show)

instance Functor Vector where
    fmap f (Vector x y z) = Vector (f x) (f y) (f z)
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.

instance Num ((Num a) => Vector a) where
    negate = fmap negate
Run Code Online (Sandbox Code Playgroud)

不行.我在第一行尝试了很多不同的变化,但GHC一直在抱怨.我想制作一个Vector包含数字的实例Num; 当然这应该是可能的吗?否则,我将不得不作出一个实例Int,Integer,Float,Double,等全部用相同的定义.

haskell types instance typeclass

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

具有属性的内存管理

我开始在objective-c中更好地理解内存管理,但有些东西我不明白.这是一个属性声明:

@property (nonatomic, retain)UILabel *myLabel;
Run Code Online (Sandbox Code Playgroud)

这是它看不见的合成二传手(我认为):

- (void)setMyLabel:(UILabel *)newValue {
    if(myLabel != newValue) {
        [myLabel release];
        myLabel = [newValue retain];
    }
}
Run Code Online (Sandbox Code Playgroud)

这节省了你每次保留和填充的所有工作,但是说我第一次设置我的属性,它还没有被分配,所以它的引用数是0,对吧?所以我这样做

UILabel *tempLabel = [[UILabel alloc] init];
self.myLabel = tempLabel;
[tempLabel release];
Run Code Online (Sandbox Code Playgroud)

我不确定那里会发生什么,什么时候什么也没发布,但是说这个属性已经有了值,我们设置了它.在setter中,首先它被释放.那不是让它消失吗?如果它的引用计数是1,然后在它发布的setter中,它如何保持设置为保留的新值?

谢谢!!

memory-management properties objective-c retain

0
推荐指数
1
解决办法
1438
查看次数

Java - 金钱类的名称

我应该如何命名我的班级,以CAD /美元的价格存储成本/价格/金额作为单独long的美元和美分?我有"PriceInDollars",但我不是那么喜欢,而且我总是忘记它.有任何想法吗?

编辑:显然我应该使用BigDecimal,而不是重新发明轮子.我想我会用它.尽管如此,我确实学到了很多东西.

在这里查看我的其他问题!

java classname

0
推荐指数
1
解决办法
1059
查看次数

CGFloat vs GLfloat

我知道CGFloat应该在Cocoa应用程序中使用,以使它们64位清理.但是在一个简单的OpenGL游戏中,使用Cocoa/Objective-C进行除渲染之外的所有事情(对于NSOpenGLView)呢?CGFloat是Core Graphics的一部分,所以如果我也可以使用CGPoint,CGRect等?或者我应该自己写一些rects和vector以及那种东西?

基本上可以将OpenGL与CoreGraphics类型混合使用吗?

opengl floating-point macos cocoa objective-c

0
推荐指数
1
解决办法
1279
查看次数