请使用以下代码:
int *p = malloc(2 * sizeof *p);
p[0] = 10; //Using the two spaces I
p[1] = 20; //allocated with malloc before.
p[2] = 30; //Using another space that I didn't allocate for.
printf("%d", *(p+1)); //Correctly prints 20
printf("%d", *(p+2)); //Also, correctly prints 30
//although I didn't allocate space for it
Run Code Online (Sandbox Code Playgroud)
malloc(2 * sizeof *p)我用这条线为两个整数分配空间,对吧?但是如果我添加int到第三个位置,我仍然可以正确分配并可检索.
所以我的问题是,为什么在使用时指定尺寸malloc?
这个问题可能看起来很愚蠢,但我找不到任何有关如何在Play 2.0中回滚演变的说明.谷歌只发现一个页面,说明进化文件的"唐氏"部分用于那个,而这就是全部.任何指针或说明将不胜感激.
我想从Facebook获得不是我的应用用户的朋友列表,并且能够邀请他们.
使用FBWebDialogs我可以选择用户,但我想知道foursquare是如何做到的?截图:

我是ios开发的新手.我有以下问题:
这两者之间有什么不同.
我知道当我们使用performSelectorInBackground时,我们创建了一个新的NSThread.但是当我们使用dispatch_group_async时却不一样吗?因为如果我们创建多个dispatch_group_async,则意味着我们需要在队列中提交多个块.这些块可能在不同的队列上运行.因此,当我们创建多个dispatch_group_async时,是否意味着我们创建了一个新线程?(因为块可能在不同的队列上运行)(我对NSThread和阻塞队列感到困惑.....)
谢谢!!
现在和XCode一起玩了大约2个星期,并且稍微阅读了MVC.我试图将模型连接到控制器时遇到问题,因为我发现很难理解数组.当我用Java编程时,我可以处理简单的数组但是我很安静地被NSArrays我看到的Obj-C吓倒了.
如果有人能够如此友善地向我展示一些对象的简单调用,那么我将永远感激不尽.
我的模特:
Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
NSString *name;
NSNumber *age;
}
@property(nonatomic, retain) NSString *name;
@property(nonatomic, retain) NSNumber *age;
@end
Run Code Online (Sandbox Code Playgroud)
Person.m
#import "Person.h"
@implementation Person
@synthesize name;
@synthesize age;
@end
Run Code Online (Sandbox Code Playgroud)
在我尝试学习的过程中,我保持非常简单.
现在我的Controller类.我想要做的是创建一个包含40个"人物"对象的数组.但我不知道将其放入Obj C的代码中的正确方法.
或者Controller.h
#import <Foundation/Foundation.h>
@class Person;
@interface Controller : NSObject
{
Person *person;
}
@property(nonatomic, retain) Person *person;
-(void) doSomeWork;
@end
Run Code Online (Sandbox Code Playgroud)
Controller.m或者
#import "Controller.h"
#import "Person.h"
@implementation Controller
@synthesize person;
-(IBAction)doSomeWork
{
// I guess here is where i should create …Run Code Online (Sandbox Code Playgroud) 以下是在目标c中工作:
// Base Class in ClassA.h and ClassA.m
@interface ClassA : NSObject
- (NSString *) myMethod;
@end
@implementation ClassA
- (NSString*) myMethod { return @"A"; }
@end
//Category in ClassA+CategoryB.h and ClassA+CategoryB.m
@interface ClassA (CategoryB)
- (NSString *) myMethod;
@end
@implementation ClassA (CategoryB)
- (NSString*) myMethod { return @"B"; }
@end
Run Code Online (Sandbox Code Playgroud)
问题是,如果我只是导入ClassA.h并发送消息
[myClassA myMethod]; //returns B
Run Code Online (Sandbox Code Playgroud)
这为什么会回归B?我没有导入ClassA + CategoryB
即便如此,如果我做了以下事情:
// Base Class in ClassA.h and ClassA.m
@interface ClassA : NSObject
- (NSString *) myMethod;
- (NSString *) …Run Code Online (Sandbox Code Playgroud) 我正在学习Scala中的Free monad,我已经汇总了一个代数的简单例子,我可以使用猫将其升级为Free monad.
这是我的代数
sealed trait ConsultationOp[A]
object consultation {
case class Create(c: Consultation) extends ConsultationOp[Unit]
case class Get(s: ConsultationId) extends ConsultationOp[Option[Consultation]]
}
Run Code Online (Sandbox Code Playgroud)
我可以像使用它一样
def app = for {
c <- consultation.Create(Consultation("123", "A consultation"))
_ <- consultation.Get(c._id)
} yield ()
def interpreters = ConsultationInterpreter or UserInterpreter
app.foldMap(interpreters)
Run Code Online (Sandbox Code Playgroud)
当从提升ConsultationOp到Free隐式执行.
(缺少很多细节,完整的工作实现在这里:https://github.com/gabro/free-api)
到目前为止一切都那么好,但是如果我需要提取返回的可选值呢consultation.Get?
首先想到的是monad变换器,即类似的东西
def app = for {
c <- consultation.Create(Consultation("123", "A consultation")).liftM[OptionT]
d <- OptionT(consultation.Get(c._id))
_ <- doSomethingAConsultation(d)
} yield () …Run Code Online (Sandbox Code Playgroud) 请考虑以下示例:
import shapeless._
case class Foo(bar: String, baz: Boolean)
val labl = LabelledGeneric[Foo]
Run Code Online (Sandbox Code Playgroud)
现在,类型labl是(美化)
LabelledGeneric[Foo] {
type Repr =
FieldType[Symbol @@ String("bar"), String] ::
FieldType[Symbol @@ String("baz"), Boolean] ::
HNil
}
Run Code Online (Sandbox Code Playgroud)
它已经传达了我需要的信息,即案例类字段的名称.
我正在寻找的是一种从labl某种方式走向某种方式的方式
"bar" :: "baz" :: HNil
Run Code Online (Sandbox Code Playgroud)
即将单例类型中包含的信息具体化为值.
这可能吗?我可以使用一个宏,但我觉得我最终会在无形状中重写与该GenericMacros对象非常相似的东西,所以我想知道我是否可以直接利用它.
每个元组基数都由swift中的自己的类型表示(就像我所知道的任何其他强类型编程语言一样),所以我们有
($T1, $T2)
($T1, $T2, $T3)
...
Run Code Online (Sandbox Code Playgroud)
由于我们有几种不同的类型,每个基数一个,它们需要是有限的.
在Scala中,我们最多Tuple22,在Haskell中,当前限制应该是64.
swift的限制是什么(如果有的话)?此外,是编译器生成的类型实现还是有一个我找不到的显式实现?
似乎每当我更改模型时,Play Framework都会要求我运行一个删除整个模式并重新创建它的脚本.显然这不适合生产,那么在生产中处理这个问题的正确方法是什么?
注意,我正在使用ebean和Postgres,并在heroku上托管.
java postgresql playframework playframework-2.0 playframework-evolutions
objective-c ×4
ios ×3
scala ×2
c ×1
case-class ×1
categories ×1
free-monad ×1
iphone ×1
java ×1
malloc ×1
nsarray ×1
nsthread ×1
postgresql ×1
revert ×1
scala-cats ×1
shapeless ×1
swift ×1
tuples ×1